【发布时间】:2010-09-19 14:42:19
【问题描述】:
嘿!我在http://www.gnu.org/software/m68hc11/examples/primes_8c-source.html查看这段代码
我注意到在某些情况下他们使用十六进制数字,例如第 134 行:
for (j = 1; val && j <= 0x80; j <<= 1, q++)
现在他们为什么要使用 0x80?我对十六进制不太擅长,但我发现了一个在线十六进制到十进制,它给了我 128 的 0x80。
同样在第 134 行之前,在第 114 行他们有这个:
small_n = (n & 0xffff0000) == 0;
十六进制到十进制给了我 4294901760 的十六进制数。 所以在这一行中,他们做了一点 AND 并将结果与 0 进行比较??
为什么不直接使用数字呢? 任何人都可以解释一下,并请给出其他情况的例子。
我也见过大行代码,其中只是十六进制数字,但从未真正理解为什么:(
【问题讨论】: