计算机中的浮点数表示

       根据IEEE 754标准,浮点数的表示形式如下:
计算机中的浮点数表示_第1张图片
       其中,S为数的符号位,为0时表示正数,为1时表示负数;P为阶码,通常用移码表示;M为尾数,用原码表示。目前,计算机中主要使用三种形式的IEEE 754浮点数,如下表所示
计算机中的浮点数表示_第2张图片
       在IEEE 754标准中,约定小数点左边隐含有一位,通常这位数就是1,因此单精度浮点数尾数的有效位数为24位,即尾数为1.xx...x。
   下面利用IEEE 754标准将数176.0625表示为单精度浮点数:
第一步, 将176.0625表示为二进制数,即(176.0625) 10  = (10110000.0001) 2
  1. 整数转化为二进制
     176/2=88...0(余数)
     88/2 =44...0
     44/2 =22...0
     22/2 =11...0
     11/2 =5 ...1
     5/2   =2 ...1
     2/2   =1 ...0
     1/2   =0 ...1
   将余数按从下往上的顺序书写就是:10110000
  2.小数部分转化为二进制
     0.0625*2=0.125...0(整数)
     0.125*2 =0.25 ...0
     0.25*2   =0.5   ...0
     0.5*5     =1.0   ...1
   将整数按从上往下的顺序书写就是:0001
第二步, 对二进制数进行规格化处 理,即1 0110000.0001 = 1*01100000001x2^7(*为小数点所在位置,在计算
            机中只取小数点后面的位存入尾数区
第三步, 将最高位去掉,并扩展为单精度浮点数所规定的23位尾数 得到尾数01100000001000000000000
第四步, 求阶码,上述表示中指数为7(即第二步中的7),用移码表示为10000110(7+127=134,127为偏移量)
第五步, 将符号位、阶码与尾数合并起来,最终得到176.0625的表示形式
                 0 10000110 01100000001000000000000(其中空格是为了方便观看)

你可能感兴趣的:(C++/C,技术)