java为什么我们有时使用十六进制格式而不是十进制格式?
我已经读了关于这个问题的解释
int a = 0x1; //hexadecimal format
但是,我仍然找不到程序员应该使用0x1、0x2而不是普通整数1或2的原因
有人能解释一下吗
多谢各位
你可以在下面搜索框中键入要查询的问题!
我已经读了关于这个问题的解释
int a = 0x1; //hexadecimal format
但是,我仍然找不到程序员应该使用0x1、0x2而不是普通整数1或2的原因
有人能解释一下吗
多谢各位
# 1 楼答案
其实没什么区别。我认为这是基于一致性的考虑。例如,您希望指定一些颜色,例如0xffffff、0xab32、0x13和0x1,这些颜色是一致的且易于阅读
# 2 楼答案
我使用我自己的一个原因是,当涉及到标志时,它有助于组织/视觉(即,在代码中对人类进行布局时)
即
等等。然后,可以将它们按位或更整齐地组合在一起
例如,上面所有按位或“ed”的toegether都是0X1F,即二进制中的11111,或单独的二进制字段
然后,如果我想删除一个标志,我就按位-XOR将其删除
即
0x1FXOR0x8=10111
# 3 楼答案
与十进制表示法相比,人们更喜欢十六进制表示法的原因有很多。计算中最常见的是bit fields。一些人已经提到了颜色代码,例如:
请注意,这种颜色表示法不仅比试图找出213545这样的随机整数可能是什么颜色更直观,而且比表示
(R,G,B)
的三元组(125, 255, 0)
占用的空间更少。十六进制表示法是一种简单的方法,可以以更少的开销抽象出与三元组相同的概念记住比特字段有很多应用程序,考虑^ {< CD3>}位字段:
人们可能使用十六进制值的另一个原因是,有时更容易记住(并将)二进制数字表示为两个符号,而不是三个符号。考虑x86 Instruction Reference。我从心底里知道
0xC3
是ret
;我发现记忆十六进制数00-FF
比记忆小数0-255
更容易(我查了一下,结果ret
是195
),但你的里程可能会有所不同。例如,这是我一直在研究的一些代码from a project:在这里使用十六进制表示法有明显的好处(更不用说一致性)。最后,正如奥比切尔所提到的,十六进制代码经常被用作错误代码。有时它们以一种类似于场的方式分组。例如:
在这种模式下,最小错误列表如下所示:
注意,如果需要,这也允许我们在
0x0X
下添加新的错误。这个答案最终比我预期的要长得多,但希望我能有所启发