浮点数的问题.docVIP

  • 8
  • 0
  • 约4.41千字
  • 约 5页
  • 2018-03-29 发布于河南
  • 举报
浮点数的问题

浮点数及其比较问题 一、浮点数表示及精度问题 1 、浮点数 IEEE754定义了单精度浮点数和双精度数浮点数,即float和double。float有32bit,double有64bit。它们都包括符号位、指数和尾数。 符号位 指数 尾数 float 31(1) 30-23(8) 22-0(23) double 63(1) 62-52(11) 51-0(52) 符号位有1bit,0表示正、1表示负。设一个数的指数是e,指数部分的值是bias+e。加上一个bias是为了表示负数。 float的bias是127,double的bias是1023。指数全0或全1有特殊含义,不算正常指数。 * float的指数部分有8bit,可以取值1~254,减掉127,得到对应的指数范围-126~127。 * double的指数部分有11位,可以取值1~2046,减掉1023,得到对应的指数范围-1022~1023。 这里的指数是以2为底的,同样尾数也是二进制的。IEEE754要求浮点数以规范形式存储,即小数点前有1位非零数字。对于二进制数,非零数字只有1。所以IEEE754在存储时省略了这个小数点前面的1,只存储小数点后面的位。 2、 误差 看个例子,设: double a=0.2; 在PC上,我们可

文档评论(0)

1亿VIP精品文档

相关文档