十六进制0x0001对比0x00000001

时间:2009-11-14 22:20:33

标签: decimal hex

通常在使用权限检查的代码中,我看到一些人使用十六进制0x0001而其他人使用0x00000001。如果我没有误会,这些看起来都像是小数1的等价物。

为什么使用一个而不是另一个,只是偏好?

2 个答案:

答案 0 :(得分:12)

假设这是C,C ++,Java,C#或类似的东西,它们是相同的。 0x0001表示16位值,而0x00000001表示32位值,但实际字长由编译器在编译时评估十六进制文字(例如这些)时由编译器确定。这是编码风格的问题,但它在编译代码中没有任何区别。

答案 1 :(得分:3)

这里发生的是这是一个位掩码,传统的做法是将前导零置于位掩码的宽度。我还想进一步猜测位掩码的宽度在某些时候发生了变化,以增加更专业的权限。