做这个题目之前有必要好好了解一下浮点数的有关知识,怎样将浮点数转换为十进制形式,以及怎样将十进制形式转化为浮点数
整个32位分为3部分:
sign:符号位,1 bit,0为正,1 为负
Exponent(bias):指数部分 8 bits 存储格式为移码存储,偏移量为127
Mantissa(fraction):尾数部分
比如:我们要存储4.25这个数
4.25->100.01->1.0001*2^2
所以指数部分为 2+127=129 -> 1000 001
位数部分为 0001 并补齐23位
如果我们给定一个二进制数 1011 1101 0100 0000 0000 0000 0000 0000 转化为十进制数
最开始的1表示负数
指数部分为:0111 1010 -127 -> -5
尾数部分为:100 0000 0000 0000 0000 0000
所以为 -1.100 0000 0000 0000 0000 0000*2^-5=0.000011 ->0.0234375
那么回到原题给定我们十进制数,我们应该把它退回到2进制数。这个过程可以由上面2个例子仔细琢磨琢磨。
比如题目中给了我们
时间: 2024-11-09 04:58:05