定点数的局限性(定点数可表示的数字范围有限,我们不能无限制的增加数据的长度)——浮点数
浮点数的表示
阶码和尾数
阶码E:反应浮点数的大小(常用补码 / 移码表示的定点整数)
尾数M:的数值部分反应浮点数的精度 (常用原码 / 补码表示的定点小数)
浮点数真值
浮点数规格化(尾数长度有限,尽可能保留更多精度)
规格化:规定尾数最高数值位必须是一个有效值
左轨(0.001——>0.1 * 2的2次方)
+302657264526 = +3.026 * 10的11次方 可以写成+11 +3.026或者 +14 +0.003
但0.003最高位是无效位,我们可以把尾数算数左移2位(小数点右移2位),阶码减2
右规(例如两个数相加,出现溢出111.011——>1.1 * 2的2次方)
+302657264526 = 302.6 * 10的9次方 右规 我们可以把尾数算数右移2位(小数点左移两位),阶码加2
双符号位右规
双符号位:高符号位为正确的符号位,低符号位为溢出的进位
原码表示的尾数规格化
补码表示的尾数规格化
浮点数的表示范围
移码(移码 = 真值 + 偏置值)
偏置值为2的n-1次方
真值-127 = -1111 1111B
移码:-1111 1111 + 1000 0000 = 0000 0001
真值-3 = -11
移码:-11 + 1000 0000 = 0111 1101
偏置值为2的n-1次方 - 1
IEE754标准(规定偏置值为2的n-1次方-1)
尾数部分(用原码表示)
浮点数尾数采用一种隐藏位(尾数在二进制表示中,将小数点后第一位设为1,并在计算机内存存储时省略这个1),增加了精度(原来23位,更改后尾数24位),所以尾数真正的数值为1.M
阶码部分(用移码表示,可将移码看成无符号数)
当偏置值为2的n次方-1的时候,阶码全为1是-128,阶码全为0是-127(阶码全1和全0有特殊用途),所以阶码范围 -126~127
移码 = 真值 + 偏移量——>真值 = 移码 - 偏移量
浮点数的最大绝对值、最小绝对值
单精度浮点数
最小绝对值:尾数全为0(默认最高位为1,真值为1.0),阶码真值最小-126(-127和-128有特殊作用),此时最小绝对值为1.0 * 2的-126次方
最大绝对值:尾数全为1,阶码真值最大127,此时最大绝对值为1.11111..... * 2的127次方
浮点数如何表示0、∞