float如何存储

来源:百度知道 编辑:UC知道 时间:2024/06/18 06:58:50
例如8.25在内存中的01代码?
0 1000 0010 000 0100 0000 0000 0000 0000对吗?

参见http://baike.baidu.com/view/1007029.html
0 1000 0010 000 0100 0000 0000 0000 0000
0表示正数
1000 0010 为十进制 130 由于采用移码表示值为130-127=3即为 2的3次方
8.25表示2进制100.01 即1.00001*2^3由于按照IEEE-754标准整数位1隐含
所以尾数位为000 0100 0000 0000 0000 0000

8.25在内存中表示为0 1000 0010 000 0100 0000 0000 0000 0000

浮点数应该是先转化为a*2^b的形式,分别储存的a,b的值,所以浮点数通常是不精确的.从而比较相等在很多时候也是无意义的.比如表达式:1/3*3与1在计算机里算出来是不相等的.不信可以编程试试.这是因为1/3在计算机里是不精确的.再乘以3不能精确的等于1了

可以看一看计算机组成原理里面,关于浮点数的存储方式,注意阶码采用移码方法表示~

取决于是little-endia还是big-endian