为什么使用十六进制值而不是普通的 10 进制数字?
我正在查看 此代码用于在 Java 中计算 math.sqrt
。 为什么他们在某些循环中使用十六进制值,而变量使用正常值? 使用十六进制有什么好处?
I was looking over this code to calculate math.sqrt
in Java. Why did they use hex values in some of the loops and normal values for variables? What benefits are there to use hex?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
因为十六进制与十进制数字更接近地对应于位。 每个十六进制数字对应 4 位(半字节)。 因此,一旦您了解了与每个十六进制数字 (0-F) 关联的位掩码,您就可以执行类似“我想要低位字节的掩码”的操作:
或者“我想要底部 31 位的掩码” :
仅供参考:
Because hex corresponds much more closely to bits that decimal numbers. Each hex digit corresponds to 4 bits (a nibble). So, once you've learned the bitmask associated with each hex digit (0-F), you can do something like "I want a mask for the low order byte":
or, "I want a mask for the bottom 31 bits":
Just for reference:
他们可能使用十六进制值,因为十六进制数字更容易记住。 例如,0x7fffffff 与 2147483647 相同,但更容易记住。
They probably used hex values because the numbers are easier to remember in hex. For example, 0x7fffffff is the same as 2147483647, but is a lot easier to remember.
十六进制是 CPU 实际使用的二进制的人类可读形式。 当查看低级命令时,匹配 CPU 并以十六进制思考通常更有意义,
Hex is a human readable form of the binary the CPU actually uses. When looking at low level commands it often makes more sense to match the CPU and think in hex,