这里只是记录一些零散的知识
无符号数溢出判断
sum = x + y;
如果 sum < x (或sum < y),则溢出
补码溢出判断
sum = x + y;
如果x > 0, y > 0, sum <= 0, 发生正溢出
如果x < 0,y < 0, sum >= 0, 发生负溢出
补码除法的舍入(向0舍入)
x/2^k
x为正数时向下舍入;x为负数时向上舍入,需要加上偏执值为(2^k-1)。
IEEE浮点表示
符号 | 单精度 | 双精度 |
---|---|---|
s | 1位 | 1位 |
exp | 8位 | 11位 |
frac | 23位 | 52位 |
1. 规格化的值(exp的值不全为0,也不全为1)
1. 符号位 :s
2. 阶码: (以偏置值形式表示的有符号整数)exp - Bias,Bias = 2^(k-1) - 1, 单精度127,双精度1023.
3. 尾数:1+frac
2. 非规格化的值 (exp的值全为0)
1. 符号位 :s
2. 阶码:1 - Bias
3. 尾数:frac
3. 特殊值(exp的值全为1)
1. frac全为0:无穷大
2. frac不为0:NaN
浮点数舍入(向偶数舍入)
形如X。。。XX.YY。。。YZ100。。。这样的浮点数
Z为0则舍弃后面的100。。。
Z为1则进位
若Z后面的数比100。。。大,则进位;若比其小,则舍弃。