关闭

float的实际存储和计算方法

标签: float 浮点运算
222人阅读 评论(0) 收藏 举报
0 zzzzzzzz wwwwwwwwwwwwwwwwwwwwwww
符号位 指数位 小数位


指数位8位 zzzzzzzz 转换为byte 取值范围 0~255 [-128~127]
这里是无符号,但是要127 为0。
即实际表示011111111 是0 就是2^0
10000001 表示2 就是2^2


小数位23位 wwwwwwwwwwwwwwwwwwwwwww 代表小数
100 1000 0000 0000 0000 0000 
1/(2^-1)+ 1/(2^-2)+ ...+1/(2^-23)


计算方式:
6.9=110.1110011001100 ...
左移小数点到前面只有一位,计算得到移动了2位,就是指数位
1.101110011001100 ...
取小数点右边23位
101110011001100 ...


指数位2 10000001
小数位≈0.7246 101110011001100 ...


逆运算
结果=2^指数位 + 2^指数位 * 小数位
例:
0 10000001 10111001100110011001100
+ 4 0.5+0.125+0.0625+0.03125+0.00390625+0.001953125 ...
result = 4 + 4 * 0.724609375
result = 6.8984375 ≈ 6.9

所以浮点数特性就是指数位越小,越精准。

参考:点击打开链接

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:17071次
    • 积分:452
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:1篇
    • 译文:0篇
    • 评论:3条
    最新评论