开发平台(Platform): (Ex: Win10, Linux, ...)
win7
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
GCC c99
问题(Question):
我想做个逻辑位移,但结果怪怪的
预期的正确结果(Expected Output):
0x00000000
错误结果(Wrong Output):
0xFFFFFFFF
程式码(Code):(请善用置底文网页, 记得排版)
比如说:
int left = 32;
printf("0x%08X\n", 0xffffffff << left);
这样会print出 0xFFFFFFFF
但是若我换成
printf("0x%08X\n", 0xffffffff << 32);
则会print出 0x00000000
why??