float类型的1二进制存储怎么这么奇怪?//阶码是那部分呢?

float 4字节
1
00111111 10000000 00000000 00000000

00111111 10000000 00000000 00000000可以分为三部分

0 01111111 00000000000000000000000
S E M
S: 1个符号位,0为正数,1为负数
E: 8个指数位E,表示为 e = E-127, 现在01111111是127,因此这个浮点数指数位e = 127-127 = 0
M: 23个尾数位,注意是尾数,所有二进制浮点数前面固定是1,并且被省略了。现在尾数是0,所以数据应该是1.000000..., 也就是1.
整个数就出来了X = + 1.000... exp(0) = 1追问

1.52//尾数与指数啥样呀

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-20
0(符号位) 0111111 1(阶码8位) 0000000 00000000 00000000(尾数23位)

说明:
(1)符号位(1位):0-正 1-负
(2)阶码(8位):采用移码表示,其偏置量为127。即 阶码-127 为指数值(比如本例,阶码为0111111 1,化为十进制为127, 127-127=0,即尾数的0次方)。
(3)尾数(23位):约定:尾数的整数部分恒为1(这个1并不保存),23位全部用于保存小数部分(比如本例,小数部分为0)。追问

尾数的整数部分恒为1(这个1并不保存)//不保存那我怎么知道整数部分是啥呀?

第2个回答  2012-09-20
第一个符号位,1代表正数。后几位为指数阶码,刚好6个1,减去127.具体的你看一下浮点型的内存表示形式就知道了
第3个回答  2020-03-31
阶码是
011111111
也就是127
127-127==0
指数为0
因为阶码不全为1,也不为0,所以有效数字最高位为1,即:
1.0000000
00000000
00000000
相似回答