找 IEEE 双精度浮点数据格式的资料

joinkee 2002-07-16 02:03:16

0xC0C3880000000000 = -10000

谁能告诉我,指数和尾数的分割点在什么位置

e-mail: joinkee@163.com

...全文
34 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
耙子 2002-07-16
  • 打赏
  • 举报
回复
S E M
单精度 1 8 23
双精度 1 11 52
耙子 2002-07-16
  • 打赏
  • 举报
回复
再写一边吧!

浮点数的表示分为3个部分
S 符号位(0或者1)
M 尾数 (约定小数点前存在一个隐含位通常为1)
E 幂 (没有符号位)

浮点数就是

E==0 => (-1)^s * (0.M) * 2^(-1022)
E!=0 => (-1)^s * (1.M) * 2^(E-1023)
E=2^11 && M==0 => 无穷大
E=2^11 && M!=0 => 无效的浮点数

其中这个1023 = 2 ^ 11 / 2 -1 = 2048 / 2 - 1 = 1024 - 1;
单精度中这个数就是 127


c0 c3 88 00 00 00 00 00变成2进制
1100 0000 1100 0011 10001000 000000000000......

其中
s =1
E=100 0000 1100 = 1036(10)
M= 0011 10011001 0000000 ....
按照扩展的规定,E-1023 > 0的时候表示小数点右移,默认小数先前是1,
就变成了 1.0011 10011001 0000000
10000(10) = 10011100010000(2) 你看看和尾数像不像,就差小数点。

(-1)^1 * 2^(1036-1023) * 1.0011 10011001 0000000

就相当于 =1.0011 10011001 0000000 小数点右移13位,正好是-10000的二进制数。

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧