嘿! 我在http://www.gnu.org/software/m68hc11/examples/primes_8c-source.html查看此代码
我注意到在某些情况下他们使用十六进制数字,如第134行:
for (j = 1; val && j <= 0x80; j <<= 1, q++)
Run Code Online (Sandbox Code Playgroud)
现在为什么他们会使用0x80?我对十六进制并不是那么好,但我发现一个在线十六进制到十进制,它给了我128为0x80.
同样在第134行之前,在第114行他们有:
small_n = (n & 0xffff0000) == 0;
Run Code Online (Sandbox Code Playgroud)
对于十六进制数字,十六进制到十进制给了我4294901760.所以在这一行中他们正在做一点AND并将结果与0进行比较?
为什么不直接使用这个号码呢?任何人都可以请解释,并请举例说明其他情况.
此外,我已经看到大行代码,它只是十六进制数字,从来没有真正理解为什么:(