用IEEE754转化为单精度浮点数时尾数的求法…

S_forever2022-10-04 11:39:541条回答

用IEEE754转化为单精度浮点数时尾数的求法…
求简洁易懂

已提交,审核后显示!提交回复

共1条回复
wl_gwyoh 共回答了21个问题 | 采纳率95.2%
以32位浮点数说明-4.25=-100.01位数 0位 1-7位 8-31位功能 符号位 指数位,为实际值加127 尾数位,除去第一个1剩余的部分样例 1 127+2=129=10000001 0001000 00000000 00000000 -4.25= 11000000 10001000 00000000 00000000
1年前

相关推荐

以IEEE754短浮点数格式表示十进制数:-3.125 要求写出过程,并最终用十六进制缩写形式表示
xiaoyuncgs1年前1
慕容子瞻 共回答了22个问题 | 采纳率95.5%
单精度符点数的表示格式为:从高到低依次为1位符号位,8位指数位,23位小数位.
首先把浮点数按二进制形式表示(以下过程不要想得太复杂):
-3.125 = -11.001
首先把小数点往左移,直到小数点的左边只有一个“1”为止.该例中就是左移一位,变成-1.1001
因为小数位是23位,所以现在把小数点的右边“1001”往后被0,直到补够23位为止,也就是要补19个0,变成:10010000000000000000000
现在计算指数位.刚才说是小数点左移,直到左边只有一个“1”为止.但是如果浮点数本身是小于1的,比如0.125用二进制表示是0.001,此时应该右移3位才对.这种情况下把“右移3位”看成是“左移-3位”,指数位的计算方法就是用127加上左移的位数.该例中因为左移了一位,所以指数位是128.注意,原先小数点左边的还剩下一个“1”是没用的,指数位就是127加上左移位数.用二进制表示,指数位是1000000.
因为-3.125是个负数,所以符号位为1.因此,-3.125的二进制形式是:
1 10000000 10010000000000000000000
写成十六进制是:c0480000
在程序里验证下:
float f = -3.125f;
int a = (int&)f;
cout
37.25用IEEE754短浮点数表示是什么
helenhx1年前1
我是BH牌避雷针 共回答了22个问题 | 采纳率86.4%
0x42150000
data = (S)*(D)*(2^(E-127))
37.25 = 149/4
=> 10010101 >> 2
=> 1.0010101