IEEE754标准

1.什么是IEEE754

  浮点数在C/C++中对应float和double类型,我们有必要知道浮点数在计算机中实际存储的内容。IEEE754标准中规定float单精度浮点数在机器中表示用 1 位表示数字的符号,用 8 位来表示指数,用23 位来表示尾数,即小数部分。对于double双精度浮点数,用 1 位表示符号,用 11 位表示指数,52 位表示尾数,其中指数域称为阶码。

2.IEEE754的规定

  单精度浮点数字长32位,尾数长度23,指数长度8,指数偏移量127;双精度浮点数字长64位,尾数长度52,指数长度11,指数偏移量1023。约定小数点左边隐含有一位,通常这位数是1,所以上述单精度尾数长度实际为24(默认省略小数点左边的1则为23),双精度尾数长度实际为53(默认省略小数点左边的1则问53)。

3.将176.0625表示为单精度浮点数

 3.1.首先将176.0625转为二进制

  十进制176.0625的二进制表示为:10110000.0001

3.2.偏移

  IEEE754约定小数点左边隐含有一位,通常这位数是1,所以10110000.0001=1.01100000001 *  2^7(小数点向左偏移7位);

3.3.偏移量

  IEEE754约定单精度指数偏移量为127,所以176.0625使用IEEE754标准表示时,指数偏移量为 7+127=134 ,即:10000110。

3.4.尾数

  IEEE754约定单精度尾数长度为23,所以176.0625使用IEEE754标准表示时,尾数为:

01100000001000000000000

3.5.确定符号位

  176.0625>0,即为整数,所以符号位为0

  由上得出:176.0625使用IEEE754规格化后的表示为:0 10000110 01100000001000000000000

 

猜你喜欢

转载自www.cnblogs.com/yangyh26/p/12194068.html