[已解决] format hex的输出问题

[复制链接]
AriesHam 发表于 2021-12-6 12:04:00
本帖最后由 AriesHam 于 2021-12-6 12:07 编辑

求问1为什么是3ff?代表的意思是啥?代码如下,如有懂的大神,望不吝赐教,谢谢!!


  1. >> format hex
  2. >> 1

  3. ans =

  4.    3ff0000000000000

  5. >> 0

  6. ans =

  7.    0000000000000000


复制代码

最佳答案


EngineerLeon 发表于 2021-12-6 13:10:00
无非是64位浮点数值的转换,64个bit中,第一个bit是符号,然后11位指数,再有52位尾数。别问为啥,IEEE标准就这么规定的。
zh.wikipedia.org/wiki/双精度浮点数
例子
二进制 0 01111111111 0000000000000000000000000000000000000000000000000000 ≙ 十六进制 3FF0 0000 0000 0000 ≙ +2^0 × 1 = 1
二进制 0 01111111111 0000000000000000000000000000000000000000000000000001 ≙ 十六进制 3FF0 0000 0000 0001 ≙ +2^0 × (1 + 2^−52) ≈ 1.0000000000000002

回复此楼

1 条回复


EngineerLeon 发表于 2021-12-6 13:10:00
无非是64位浮点数值的转换,64个bit中,第一个bit是符号,然后11位指数,再有52位尾数。别问为啥,IEEE标准就这么规定的。
zh.wikipedia.org/wiki/双精度浮点数
例子
二进制 0 01111111111 0000000000000000000000000000000000000000000000000000 ≙ 十六进制 3FF0 0000 0000 0000 ≙ +2^0 × 1 = 1
二进制 0 01111111111 0000000000000000000000000000000000000000000000000001 ≙ 十六进制 3FF0 0000 0000 0001 ≙ +2^0 × (1 + 2^−52) ≈ 1.0000000000000002

回复此楼
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表