对于这里的专家来说,这可能是非常基本甚至是愚蠢的,但我想了解这个问题.大多数时候我通常在C中写这样的十六进制值:
unsigned int a = 0xFFFF1232;
Run Code Online (Sandbox Code Playgroud)
假设我试图提取第一个和最后一个16位然后我可以简单地做:
unsigned short high = a >> 16; // Gives me 0xFFFF
unsigned short low = a & 0x0000FFFF; // Gives me 0x00001232 which is then stored as 0x1232
Run Code Online (Sandbox Code Playgroud)
在我正在阅读的一些代码中,我遇到了以下内容:
unsigned short high = a >> 16;
unsigned short low = a & 0xFFFF;
Run Code Online (Sandbox Code Playgroud)
我有两个问题
AND使用掩码进行32位值时,人们为什么要写0xFFFF而不是0x0000FFFF?是为了保持紧凑吗?0x0000FFFF的0xFFFF?它在任何情况下都有不同的解释吗?