在阅读一些现有代码时,我发现:
public static readonly int MaxSize = 0x1000;
这让我想知道为什么使用十六进制文字。在这种情况下,MaxSize 用于分页。
我最接近的是:
十六进制数字是表达整数值的便捷方式, 准确表示该整数存储在内存中的位。
https://csharp.2000things.com/2010/08/28/72-hexadecimal-numbers/
这在一定程度上是有道理的,我有兴趣听到对此用例的更详细解释,特别是“准确表示存储在内存中的位”。
在某些情况下,十六进制值比十进制值更四舍五入且易于理解。像 0x0FFF、0xA0A0、0x10000 等
为什么使用十六进制而不是十进制?
@AlexKeySmith,这是一个很好的问题。历史上十六进制的出现是因为当前大多数计算机设计都使用二进制电子学。 (还有模拟、三元、量子等其他类型)。
十六进制数通常比二进制数更容易记住、输入和计算(例如:0x65 表示字母“A”,而二进制表示 01100101)。对于人类来说,从二进制转换十六进制通常比十进制更快,因为每个十六进制数字直接代表四个二进制位,而十进制则不可能。八进制(以 8 为基数)是 20 世纪 70 年代中期之前常用的另一种替代方法。
在您的具体示例中,当程序员经常将十六进制用于其他目的时,程序员可能会以十六进制指定最大测量值,并且可能考虑到计算机的最大限制通常与硬件相关,尽管情况可能并非如此这里。换句话说,与任何“良好实践”一样,出于历史使用原因。