首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Double.toHexString()语法--它从何而来?

Double.toHexString()语法--它从何而来?
EN

Stack Overflow用户
提问于 2014-07-17 14:08:03
回答 1查看 471关注 0票数 1
代码语言:javascript
复制
    System.out.println(Double.toHexString(-1d));

收益率

代码语言:javascript
复制
-0x1.0p0

Javadoc将语法解释为:

如果m是具有规范化表示的双值,则使用子字符串来表示意义字段和指数字段。意义由字符“0x1”表示。后跟小写的十六进制表示其馀的意义和分数。除非所有数字为零,否则十六进制表示中的尾随零将被移除,在这种情况下使用单个零。接下来,指数用"p“表示,后面跟着无偏指数的十进制字符串,就像调用指数值上的Integer.toString一样。

这是我第一次看到这些“-0x1”。符号。它是某种行业标准,还是Java的创新?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-17 14:27:51

它不仅是java,在C中看起来也是这样,这个页面解释了一些:http://www.exploringbinary.com/hexadecimal-floating-point-constants/

因为十六进制代表的是一个双,它是用科学符号表示的,所以你看到的是1.0到0的幂。问题是,toHexString方法首先查看二进制字符串,并在“.”之后转换任何部分。敬妖术。这意味着句点之前的数字将始终是1,因此javadoc将"0x1“作为表示数字为十六进制的符号。“-”只是说它是否定的,它不是符号的一部分。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24805866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档