首页 > 试题广场 >

float 类型(即 IEEE754 单精度浮点数格式)能表

[单选题]

float 类型(即 IEEE754 单精度浮点数格式)能表示的最大整数是( )。

  • 2^126-2^103
  • 2^127-2^104
  • 2^127-2^103
  • 2^128-2^104
考察浮点数的表示。
对于一个非0且不是无穷大的浮点数,其阶码实际值为-126~+127,对应移码1~254。
尾数的最大值为:0.1111.....111111共23位小数
取阶码127,即指数127。
那么,根据X = (-1) s ×(1.M)×2  E-127   ,有
最大值为 (1.11111.....1)2 ×2127 =(1+1-2-23) ×2 127 = (2-2 -23) ×2 127 = DCUP

发表于 2016-12-09 14:52:54 回复(10)
float指数位8位,指数范围-128至127 。小数位23位。。则最大数为1.11111111111111111111111*2^127=(2-2^-23)*2^127=2^128-2^104
发表于 2017-07-09 21:27:15 回复(8)

M.E的解释是不对的,至于最大值是什么,看牛客2862122大牛的

我这里说说IEEE754的一些特殊情况,就单精度而言。

32位, 1位符号位+8位指数位+23位小数位

  • 当指数位全部为0,并且小数位全部为0的时候,表示0;通过符号位可以得知是+0,还是-0;
  • 当指数位全部为1,并且小数位全部为0的时候,表示无穷大,计算机里面一般标记为inf;通过符号位可以得知是inf,还是-inf;
  • 当指数位全部为1,并且小数位不全为0的时候,表示这并不是一个有效数,一般即为NaN。

至于本题中的最大数,它的编码形式是这样的 0 11111110 11111111111111111111111

编辑于 2017-02-21 10:22:50 回复(4)
IEEE754标准中规定float单精度浮点数在机器中表示用 1 位表示数字的符号,用 8 位来表示指数,用23 位来表示尾数,即小数部分。
而划归为规格化一定是1.M啥的。然后就好了
对于double双精度浮点数,用 1 位表示符号,用 11 位表示指数,52 位表示尾数,其中指数域称为阶码。
发表于 2018-05-03 15:41:24 回复(0)
浮点数前8位指数,即128次,后24位是小数 如果全1,那么是最大数,但是是24个1,想要把底数变成2还差一个1,这个1相对与进2是相差24位的,那么就是2的128-2的128-24次
编辑于 2016-11-25 19:10:01 回复(0)
要使表示的数最大,尾符一定为0表正数,阶码一定最大,但八位全1不符合规范,最大是11111110表示254,减去偏移量127,得127
尾数23位都取1,小数点之前也可以保存一个1,因此是2^0+2^1+…+2^23=2-2^23
又阶码最大为127,故最大正数为2^127 * (2-2^23),得2^128-2^104
发表于 2023-03-06 13:36:03 回复(0)
内存中所有表示都是二进制,float表示,1符号位+8指数位+23尾数位,最大的就是符号位0,其余都是1,二进制表示就是, 
  • 尾数 1.11111111111111111111111(23bit)
  • 指数 因为有正有负, 8bit能表示的数是[0,256],转换到实际算数范围是[-128,127]
所以最大的二进制数是 1.11111111111111111111111*2^127,转换成十进制数是(2-2^-23)*2^127 = 2^128-2^104
发表于 2022-11-25 14:49:55 回复(0)
ieee标准中,float型: 总位数 32位:符号位 (表数的正负)1位,阶码位(含一位阶符,用移码表示,真值都被加上一个偏移量) 8位,尾数位(补码表示,是小数) 23 位 最大值:符号位为0表正,阶码1111 1111:255(真值为127),尾数:111 1111 1111 1111 1111 1111(真值为1-2∧(-23)+1),值即2∧128-2∧104
发表于 2017-02-18 13:54:42 回复(1)
发表于 2020-05-18 21:27:36 回复(0)
就单精度而言。 32位, 1位符号位+8位指数位+23位小数位 当指数位全部为0,并且小数位全部为0的时候,表示0;通过符号位可以得知是+0,是-0当指数位全部为1,并且小数位全部为0的时候,表示无穷大,计算机里面一般标记为inf;通过符号位可以得知是inf,还是-inf; 当指数位全部为1,并且小数位不全为0的时候,表示这并不是一个有效数,一般即为NaN。 至于本题中的最大数,它的编码形式是这样的0111 11110111111111111111111111 11
编辑于 2020-03-01 11:18:05 回复(0)
这是组成原理学到的,32位成立
发表于 2017-05-20 22:55:44 回复(0)
没加括号不对吧
发表于 2016-11-30 12:42:26 回复(0)
浮点值 = (-1)^s * 1.M *  2^t 
对于单精度浮点float:  M为尾数, E为指数译码
    t = E - 127 = -126 -- 127 (E = 1 -- 254)
即最大为: 1 * 1.11...11(23个1)  *  2^127 = (2  -  2^-23) * 2^127  
发表于 2022-03-09 10:47:32 回复(0)
指数最大为127,尾数部分最大为0.111111(一共23个1) 所以最大值为1.11111B(尾数部分23个1)×2^127 最高位128位 111100B=2^6-2^2=60 同理float最大值为2^128-2^(128-24) 感觉这道题抓住二进制运算的诀窍就简单多了
发表于 2021-08-21 02:33:19 回复(0)
求解答
发表于 2017-07-22 22:01:50 回复(0)