加减法
- 尾数右移时,需要返回原来的隐藏位
1
- 尾数右移时,需要保持负号不变,在数值高位补
0
,但不改变符号位
示例
有进位要去掉进位,再进行左规
乘除
舍入
溢出
最大允许阶值 = 127
最小允许阶值 = -126
阶值 = 阶码的二进制解释 - 偏置常数
在浮点数的表示中,阶码全1和阶码全0都有特殊含义
异常
双精度:阶下溢用0表示。
数据类型
D+F-F == F
什么时候不成立?
int main() {
float y = 1.0;
for (int i = -100; i < 100; ++i) {
double w = pow(2, i);
if ((y + w) - w != y) {
// cout << y+w-w<<"!!!";
// cout << y <<endl;
cout << i << " ";
}
}
return 0;
}
当i >=53
时,不成立。因为双精度浮点数的尾数长度为52,所以,**1.0**
在对阶过程中,因为阶值变成了53,所以相当于1前面增加了53个0,而尾数最长只有52,所以1就被舍去了。