当我通过时n = 0x0
,我会进入0xffffffff
我期望的屏幕,0x00000000
因为我将这个词移动了32 bits
(只是忽略 x!我没有在函数中使用它。)
void logicalShift(int x, int n) {
int y = 32;
int mask = 0xffffffff;
printf("mask %x", mask << (y-n));
}
有趣的一点是
void logicalShift(int x, int n) {
int y = 32;
int mask = 0xffffffff;
printf("mask %x", mask << 32);
}
这将输出我所期望的。我错过了什么吗?谢谢!
我在 ubuntu 上运行