为什么使用十六进制值而不是普通的 10 进制数字?

发布于 2024-07-12 03:49:30 字数 273 浏览 3 评论 0原文

我正在查看 此代码用于在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

浮华 2024-07-19 03:49:30

因为十六进制与十进制数字更接近地对应于位。 每个十六进制数字对应 4 位(半字节)。 因此,一旦您了解了与每个十六进制数字 (0-F) 关联的位掩码,您就可以执行类似“我想要低位字节的掩码”的操作:

0xff

或者“我想要底部 31 位的掩码” :

0x7fffffff

仅供参考:

HEX    BIN
0   -> 0000
1   -> 0001
2   -> 0010
3   -> 0011
4   -> 0100
5   -> 0101
6   -> 0110
7   -> 0111
8   -> 1000
9   -> 1001
A   -> 1010
B   -> 1011
C   -> 1100
D   -> 1101
E   -> 1110
F   -> 1111

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":

0xff

or, "I want a mask for the bottom 31 bits":

0x7fffffff

Just for reference:

HEX    BIN
0   -> 0000
1   -> 0001
2   -> 0010
3   -> 0011
4   -> 0100
5   -> 0101
6   -> 0110
7   -> 0111
8   -> 1000
9   -> 1001
A   -> 1010
B   -> 1011
C   -> 1100
D   -> 1101
E   -> 1110
F   -> 1111
童话里做英雄 2024-07-19 03:49:30

他们可能使用十六进制值,因为十六进制数字更容易记住。 例如,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.

茶花眉 2024-07-19 03:49:30

十六进制是 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,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文