嘿!我正在查看位于http://www.gnu.org/software/m68hc11/examples/primes_8c-source.html的代码。
我注意到在某些情况下他们使用了十六进制数,比如在第134行:
for (j = 1; val && j <= 0x80; j <<= 1, q++)
现在,他们为什么要使用0x80?我不是很擅长十六进制,但是我找到了一个在线十六进制转十进制的工具,它告诉我0x80相当于128。
还有,在第134行之前,在第114行他们有这个:
small_n = (n & 0xffff0000) == 0;
The hex to decimal gave me 4294901760 for that hex number. So here in this line they are making a bit AND and comparing the result to 0??
Why not just use the number? Can anyone please explain and please do give examples of other situations.
我也曾经看到一些仅由十六进制数字组成的大量代码,但从未真正理解其原因 :(