| 赞 | 2 |
| VIP | 143 |
| 好人卡 | 1 |
| 积分 | 1 |
| 经验 | 216792 |
| 最后登录 | 2019-10-10 |
| 在线时间 | 24 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 61
- 在线时间
- 24 小时
- 注册时间
- 2008-8-5
- 帖子
- 1924
|
本帖最后由 紫苏 于 2010-7-1 08:24 编辑
其实这个在大多数语言中都是通用的,两个整数相除,在汇编层实际上是把商和余数分别存在了两个寄存器中,编译器编译出来的代码会只从保存了商的那个寄存器提取数据,而舍弃掉余数,这是整数相除
当你有两个不同精度类型做运算的时候,编译器就会做一个隐式精度提升,把运算中精度小的类型转换成精度大的类型,然后再运算,所以
5/2 = 2,而 5/2.0=2.5,因为这里的 5 会自动被提升到本地双精度浮点类型,这时的除法运算就是浮点数相除了,CPU 有不同的芯片分别处理浮点数相处和整数相除 |
|