【答案解析】[解析] 首先,最大整数肯定是正数,取数符m
s=0。其次,要使得该数最大,尾数必须最大,即尾数m=.11…1,其值为1.11…1(小数点前面的1隐藏),该数怎么转换为十进制?因为尾数后面有23个1,显然加上一个2
-23的结果为10.00…0,即2。所以1.11…1=2-2
-23。
由于采用单精度格式,因此阶码为8位(采用移码表示),最大是否为全1?显然不行,阶码全0和全1都是不可取的,因此最大可以取到11111110,即十进制254,然后再减去偏移量127,最后可得最大指数127。
综上所述,可以得到float类型(即IEEE 754单精度浮点数格式)能表示的最大整数是2
127×(2-2
-23),即2
128-2
104。
IEEE 754标准浮点数的表示范围,见下表
{{B}}表 IEEE 754标准浮点数的表示范围{{/B}}
|
| 格式 |
最小值 |
最大值 |
| 单精度 |
ms=1,m=0,值为1.0×21-127=2-126 |
ms=0,m=.11…1,值为1.11…1×2254-127=2127×(2-2-23) |
| 双精度 |
ms=1,m=0,值为1.0×21-1023=2-1022 |
ms=0,m=.11…1,值为1.11…1×22046-1023=21023×(2-2-52) |