浮点数
- 浮点数的重要性
浮点数用于表示非常大或非常小的数值,以及带有小数部分的数值。
浮点数在科学计算、工程和计算机图形学中非常重要。
- 浮点数的基本概念
定点数(Fixed Point):小数点位置固定,表示范围有限。
浮点数(Floating Point):小数点位置不固定,通过指数(Exponent)动态调整,能够表示更广泛的数值范围。
- IEEE 754 标准
IEEE 754 是浮点数表示的国际标准,广泛应用于计算机系统。
单精度浮点数(32位):
符号位(1位):表示正负。
指数位(8位):偏移量为127。
尾数位(23位):表示小数部分。
双精度浮点数(64位):
符号位(1位):表示正负。
指数位(11位):偏移量为1023。
尾数位(52位):表示小数部分。
- 浮点数的特殊值
正无穷(+∞)和负无穷(-∞):
指数位全1,尾数位全0。
符号位为0表示正无穷,符号位为1表示负无穷。
NaN(非数字):
指数位全1,尾数位不全为0。
用于表示无效的数值运算结果(如0/0或sqrt(-1))。
正零(+0)和负零(-0):
指数位全0,尾数位全0。
符号位为0表示正零,符号位为1表示负零。
- 浮点数的运算
浮点数的加法和乘法比整数复杂,因为需要对齐小数点(指数)。
浮点数运算可能导致舍入误差,因为浮点数是近似值。
浮点数运算不满足结合律(例如,x + (y + z) 和 (x + y) + z 的结果可能不同)。
- 浮点数的精度和舍入
精度(Precision):表示浮点数中用于表示数值的位数。
准确性(Accuracy):表示浮点数与实际值的接近程度。
舍入模式(Rounding Modes):
向正无穷舍入。
向负无穷舍入。
截断(丢弃多余位)。
四舍五入到最近的偶数(默认模式)。
- 浮点数的范围
单精度浮点数(32位):
最小正数:约1.2 × 10⁻³⁸。
最大正数:约3.4 × 10³⁸。
双精度浮点数(64位):
最小正数:约2.2 × 10⁻³⁰⁸。
最大正数:约1.8 × 10³⁰⁸。
- 浮点数的表示方法
科学记数法(Scientific Notation):
形式为 1.xxxxx × 2^y,其中xxxxx是尾数,y是指数。
规格化(Normalization):
尾数部分总是以1.xxxxx的形式表示,以提高精度。
非规格化数(Denormals):
指数位:00000000。
尾数位:00000000000000000000001。
表示的数值为 2^-149
用于表示非常接近零的数值,避免在零附近出现数值间隙。
