浮点数
计算机的浮点数
浮点指的是带有小数的数值,浮点运算即是小数的四则运算,常用来测量电脑运算速度。大部分计算机采用二进制(b=2)的表示方法。位(bit)是衡量浮点数所需存储空间的单位,通常为32位或64位,分别被叫作单精度和双精度。有一些计算机提供更大的浮点数,例如英特尔公司的浮点运算单元Intel8087协处理器(以及其被集成进x86处理器中的后代产品)提供80位长的浮点数,用于存储浮点运算的中间结果。还有一些系统提供128位的浮点数(通常用软件实现)。
浮点数的标准
在电脑使用的浮点数被电气电子工程师协会(IEEE)规范化为IEEE 754。
举例
π的值可以表示为π = 3.1415926... 10 (十进制)。当在一个支持17位尾数的计算机中表示时,它会变为0.11001001000011111 × 2 。
准确性
由于浮点数不能表达所有实数,浮点运算与相应的数算有所差异,有时此差异极为显著。
比如,二进制浮点数不能表达0.1和0.01,0.1的平方既不是准确的0.01,也不是最接近0.01的可表达的数。单精度(24比特)浮点数表示0.1的结果为 e = − − --> 4 {\displaystyle e=-4} , s = 110011001100110011001101 ( 2 ) {\displaystyle s=110011001100110011001101_{(2)}} ,即
此数的平方是
但最接近0.01的可表达的数是
浮点数也不能表达圆周率 π π --> {\displaystyle \pi } ,所以 tan --> π π --> 2 {\displaystyle \tan {\frac {\pi }{2}}} 不等于正无穷,也不会溢出。下面的C语言代码
doublepi=3.1415926535897932384626433832795;doublez=tan(pi/2.0);
的计算结果为16331239353195370.0,如果用单精度浮点数,则结果为−22877332.0。同样的, sin --> π π --> ≠ ≠ --> 0 {\displaystyle \sin \pi \neq 0} 。
由于浮点数计算过程中丢失了精度,浮点运算的性质与数算有所不同。浮点加法和乘法不匹配结合律和分配律。
事故
相关条目
IEEE二进制浮点数算术标准(IEEE 754)
单精度浮点数
双精度浮点数
免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。
- 有价值
- 一般般
- 没价值