176.0652
转换成二进制:10110000.0001
规格化二进制数:1.01100000001*2^7 (小数点移了7位)
计算指数:7+127=134 (127是个标准数值)
符号位 指数部分(在本题中由134转换成8位二进制的指数) 尾数部分
0 10000110 01100000001 000000000000 (不足32位,后面补0,直到补足32位)
二进制结果:0100 0011 0011 0000 0001 0000 0000 0000
十六进制结果:0x43301000
还有不明白的地方再问!
C语言的单精度浮点数就是IEEE754标准的单精度浮点数.如果你想要32个bit值,可以用E格式输出实数176.0625,或用"按位与"输出每个bit值.
32位(0到31bit)分配:
符号位在最高位,[31bit],
指数位[30-23]
尾数位[22-0]
32个bit到浮点数的转换程序见参考资料.
先看一下ieee754短浮点数的格式
32位单精度
单精度二进制小数,使用32个比特存储。
1
8
23 位长
s
exp
raction
31
30至23
偏正值
22至0 位编号(从右边开始为0)
(实际的指数大小+127)
下面来进行计算
-26.3125=-11010.0101
所以第一位是1,偏正值=4+127=131,尾数10100101
最终表示
11000001
11010010
10000000
00000000
第二题没法答