【发布时间】:2010-12-16 16:29:22
【问题描述】:
通常在使用权限检查的代码中,我看到有些人使用十六进制 0x0001,而其他人使用 0x00000001。如果我没记错的话,它们看起来都相当于十进制 1。
为什么要使用一个而不是另一个,只是偏好问题?
【问题讨论】:
-
请确保您不要在十进制数上使用前导零,因为这取决于指示八进制数的语言。
0053不必与53相同。
通常在使用权限检查的代码中,我看到有些人使用十六进制 0x0001,而其他人使用 0x00000001。如果我没记错的话,它们看起来都相当于十进制 1。
为什么要使用一个而不是另一个,只是偏好问题?
【问题讨论】:
0053 不必与53 相同。
假设这是 C、C++、Java、C# 或类似的东西,它们是相同的。 0x0001 表示 16 位值,而 0x00000001 表示 32 位值,但实际字长由编译器在编译时在评估诸如此类的十六进制文字时确定。这是编码风格的问题,但对编译后的代码没有任何影响。
【讨论】:
这里发生的情况是这是一个位掩码,传统上将前导零放置在位掩码的宽度上。我还猜测位掩码的宽度在某些时候会发生变化以添加更多专门的权限。
【讨论】: