我们知道,将int型的128转换为short型会变成-127,这是因为它的截断原理如下:
int型128在内存中表示为00000000 00000000 00000000 10000000
直接截取后8位得 10000000
这刚好是-127的表示方式。
那么问题来了,对于float型的3.14,在内存中的表示方式为 0 10000000 10010001111010111000011
它转换为int后数值为3,那它是怎样一个截duan过程呢?
我们知道,将int型的128转换为short型会变成-127,这是因为它的截断原理如下:
int型128在内存中表示为00000000 00000000 00000000 10000000
直接截取后8位得 10000000
这刚好是-127的表示方式。
那么问题来了,对于float型的3.14,在内存中的表示方式为 0 10000000 10010001111010111000011
它转换为int后数值为3,那它是怎样一个截duan过程呢?
为什么认为float转换为int是用的截断原理呢?从长度上来说,float和int是一样长的,那为什么要截断?