作业帮 > 数学 > 作业

请问熟悉浮点计算的朋友们,如何把一个数字变成4字节浮点数?

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/15 16:56:45
请问熟悉浮点计算的朋友们,如何把一个数字变成4字节浮点数?
原说明中是这样说的,10000.84 ,整数部分转换为长整形16进制为00002710H,这个倒是可以理解,2*16*16*16+7*16*16+1*16.然后,小数部分0.84转换为浮点型3F570A3DH.
1、为什么一个数字好好的,非要拆分为整数部分和小数部分?
2、整数部分和小数部分的算法为什么不一样?
3、小数部分是怎么计算出来的,算法.
说明书后面又讲100的4字节浮点数为42C80000H,为什么不按照上面长整形的10000变成00002710H来算哪?这里的42C80000H是怎么得到的,什么算法.
请朋友们给予解释,
参见IEEE 754编码标准
0.84这个来说
0.84×2 = 1.68 那么二进制小数部分第一位为1
0.68×2 = 1.36 那么二进制小数部分第二位为1
0.36×2 = 0.72 那么二进制小数部分第三位为0
..
一直继续下去直到得到23位 二进制小数(0.1 10101110000101000111101)
正数的符号位为0,
小数点右移一位,得到1 .10101110000101000111101 那么 exponent位-1 (-1+127=126 biased form)126二进制为01111110
所以0-01111110-10101110000101000111101=3F570A3DH
再看100.0整数部分100=64H=01100100
小数部分为0,
小数点左移6位1.100100,exponent 6+127=133=85H=10000101
0-10000101-10010000000000000000000=42C80000H