開發平台(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??