- 论坛徽章:
- 2
|
本帖最后由 OwnWaterloo 于 2012-05-20 16:49 编辑
1. 对常用的10进制数,可以通过移动小数点并乘(除)10的幂得到原数,如12 = 1.2*10^1, 2.6 = 26*10^-1。
而对2进制数,每个位上的可能取值只有0或1。
如果再用上述方法将任意二进制数的小数点移动到首个非0位之后,得到 1.???? * 2^e 的形式,那小数部分的最高位始终是1 —— 不同于10进制,可能有1-9共9种可能 —— 那这个1就不需要存储空间。于是就不需要为其安排存储空间。有效位数=存储位数+1。
2,3. IEEE754的单精度是 1+8+23
4,5. IEEE754的双精度记得有53这个数字,至于是有效位数还是存储位数就不记得了……
如果是有效位数,那就是1+11+52,否则就是1+10+53。
扩展双精度请问google……
6. IEEE754的单精度、双精度、扩展双精度并不总是映射到C语言的float,double,long double。
C语言的float,double,long double并不总是分别映射到IEEE754的单精度、双精度、扩展双精度。
|
|