所有16位无符号整数(无符号短整数)值是否可以完全存储在32位浮点值中? 是否可以将所有32位无符号整数(unsigned int)值完全存储在32位浮点值中? 以下哪个数字可以用32位浮点值完全表示? 1.648,2.75,2.125,10.999,9.351,0.625
答案 0 :(得分:1)
因此,所有无符号16位整数都可以完全表示为浮点数,但不是所有无符号32位整数。
解释是一些位模式用于表示小数,例如0.125和1.5,因此对于整数,可以使用少于2个 32 位模式。
您选择的编程语言中的简单程序可以告诉您1.648,2.75,2.125,10.999,9.351,0.625中的哪一个可以精确表示为单精度:打印到26个有效十进制数字(例如,格式为{ {1}}使用类似%.25e
的函数),printf
的值,...
当您在大多数编程语言的程序中键入浮点常量1.648f
时,它将转换为最接近1648/1000的单精度浮点数。如果此数字打印为1.648f
,则表示数字1.648可以完全表示为浮点数。如果它打印为其他东西,那么1.648是不可表示的(并且输出会告诉你最近的浮点数到底有多远)。