float变量在内存当中存储格式.docxVIP

  • 8
  • 0
  • 约6.52千字
  • 约 11页
  • 2016-12-29 发布于湖北
  • 举报
float浮点数的二进制存储方式及转换int和float都是4字节32位表示形式,为什么float的范围大于int?float精度为6~7位,且1.66×10^10的数字结果并不是166 0000 0000,指数越大,误差越大。这些问题,都是浮点数的存储方式造成的。?float和double在存储方式上都遵从IEEE的规范,且float遵从的是IEEE R32.24,而double 遵从的是R64.53。无论是单精度还是双精度在存储中都分为三个部分:符号位(Sign):0代表正,1代表为负;指数位(Exponent):用于存储科学计数法中的指数数据,并且采用了移位存储;尾数部分(Mantissa):尾数部分;其中float的存储方式如下图所示:而双精度的存储方式为:附注:将一个float型转化为内存存储格式的步骤(1)先将这个实数的绝对值化为二进制格式。(2)将这个二进制格式实数的小数点左移或右移n位,直到小数点移动到第一个有效数字的右边。?(3)从小数点右边第一位开始数出二十三位数字放入第22到第0位。?(4)如果实数是正的,则在第31位放入“0”,否则放入“1”。?(5)如果n 是左移得到的,说明指数是正的,第30位放入“1”;如果n是右移得到的或n=0,则第30位放入“0”。?(6)如果n是左移得到的,则将n减去1后化为二进制,并在左边加“0”补足七位,放入第29到第23位;

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档