计算机中的数值问题
2017-08-08 23:39
134 查看
现代计算机几乎都服从IEEE浮点标准,当对数值算法编码时,IEEE浮点数表示具有很多重要特性。
IEEE浮点实数中有三个"特殊值":
1.无穷大(∞):比任何其他有效数都大的有效数。
2.负无穷大(-∞):比任何其他有效数都小的有效数。
3.无效数(NaN):这是一个无效数,由未定义运算得出的结果,例如0/0.
IEEE浮点标准的制定中做了一些 规定,对于任意实数a,下面的规则成立:
+a/(+∞) = +0
-a/(+∞) = -0
+a/(-∞) = -0
-a/(-∞) = +0
需要注意的是IEEE浮点标准将-0和+0区别开。在多数图形学程序中,这种区别不大,但是对于更经典的数值算法,必须牢记这一点。
其他涉及无穷大的运算,与期望的结果一样。对于正实数a,则有
∞+∞ = +∞
∞-∞ = NaN
∞*∞ = ∞
∞/∞ = NaN
∞/a = ∞
∞/0 = ∞
0/0 = NaN
涉及无穷大的布尔表达式规则如下,与期望的结果一样:
1.所有有效的有效数都小于+∞
2.所有有效的有效数都大于-∞
3.-∞小于+∞
包含无效数(NaN)的表达式规则很简单,具体如下:
1.任何包含NaN的算术表达式,结果是NaN
2.任何包含NaN的布尔表达式,结果是假
也许在IEEE浮点标准中最实用的是堆除数为0的情况的处理。对于任意正实数a,下面包含除数为0 的规则成立:
+a/+0 = +∞
-a/+0 = -∞
在IEEE浮点标准出现之前,如果遇到除0导致崩溃,我们就会很无奈的在代码中添加浮点数是否接近于0 的判断。有了IEEE浮点标准后,我们就
不需要进行特别的检查,这样就使得程序更加简单,稳健,高效
IEEE浮点实数中有三个"特殊值":
1.无穷大(∞):比任何其他有效数都大的有效数。
2.负无穷大(-∞):比任何其他有效数都小的有效数。
3.无效数(NaN):这是一个无效数,由未定义运算得出的结果,例如0/0.
IEEE浮点标准的制定中做了一些 规定,对于任意实数a,下面的规则成立:
+a/(+∞) = +0
-a/(+∞) = -0
+a/(-∞) = -0
-a/(-∞) = +0
需要注意的是IEEE浮点标准将-0和+0区别开。在多数图形学程序中,这种区别不大,但是对于更经典的数值算法,必须牢记这一点。
其他涉及无穷大的运算,与期望的结果一样。对于正实数a,则有
∞+∞ = +∞
∞-∞ = NaN
∞*∞ = ∞
∞/∞ = NaN
∞/a = ∞
∞/0 = ∞
0/0 = NaN
涉及无穷大的布尔表达式规则如下,与期望的结果一样:
1.所有有效的有效数都小于+∞
2.所有有效的有效数都大于-∞
3.-∞小于+∞
包含无效数(NaN)的表达式规则很简单,具体如下:
1.任何包含NaN的算术表达式,结果是NaN
2.任何包含NaN的布尔表达式,结果是假
也许在IEEE浮点标准中最实用的是堆除数为0的情况的处理。对于任意正实数a,下面包含除数为0 的规则成立:
+a/+0 = +∞
-a/+0 = -∞
在IEEE浮点标准出现之前,如果遇到除0导致崩溃,我们就会很无奈的在代码中添加浮点数是否接近于0 的判断。有了IEEE浮点标准后,我们就
不需要进行特别的检查,这样就使得程序更加简单,稳健,高效
相关文章推荐
- 尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题。现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示同一个数,如十进制数123表达为16进制时只包含两位数7、11(B),用八进制表示时为三位数1、7、3。按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11。
- 获取输入框内容,数值类型转换问题
- 【计算机网络常见面试题】网络规划问题
- DecimalFormat对数值格式化的舍入问题——RoundingMode
- RIS部署操作系统问题(解决无人值守.计算机名称.硬盘分区等问题)
- 计算机启动相关术语、问题
- 老生常谈计算机中的编码问题(必看篇)
- SQL Server 安装问题:以前的某个程序安装已在安装计算机上创建挂起的文件操作
- 关于计算机网络的常见面试问题
- [CF555E]Case of Computer Network/[51NOD1470]计算机网络问题
- vs 项目编译运行报错:无法启动此程序,因为计算机中丢失 osg130-osgDB.dll。尝试重新安装该程序以解决此问题
- 计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决
- [转载] 高等应用数学问题的matlab求解——第4章 线性代数问题的计算机求解
- HNNU 11657 简单的图论问题?【湖南省第十一届大学生计算机程序设计竞赛,双BFS】
- 就计算机学习问题与一名高二学生的邮件往来
- 关于域中计算机调取网络共享目录中图片的问题
- 【计算机基础】各类小问题
- 计算机二级辅导:java中120个经典问题