看板 C_and_CPP 關於我們 聯絡資訊
Platform: Linux GCC Question: unsigned int test_bits_1 = 0x00000001; printf("test_bits_1 = 0x00000001, test_bits_1 << 32 = %X\n", test_bits_1 << 32); printf("0x01 << 32 = %X\n", 0x01 << 32); 輸出結果 test_bits_1 = 0x00000001, test_bits_1 << 32 = 1 0x01 << 32 = 0 請問問題出在哪裡? 我以為結果test_bits_1 << 32 = 0 程式碼(Code): unsigned int test_bits_1 = 0x00000001; printf("test_bits_1 = 0x00000001, test_bits_1 << 32 = %X\n", test_bits_1 << 32); printf("0x01 << 32 = %X\n", 0x01 << 32); -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.2.127 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1409036665.A.B8D.html ※ 編輯: michael47 (118.166.2.127), 08/26/2014 15:09:46 ※ 編輯: michael47 (118.166.2.127), 08/26/2014 15:11:28
suhorng: undefined behavior when sizeof(int) = 4 08/26 16:25
michael47: 請問樓上的意思是說當type為int(4個bytes)會這樣嗎? 08/26 17:11
michael47: 請問樓上可以提供造成這樣結果的資料來源嗎? 08/26 17:12
michael47: 我已經找到答案了,感謝樓上suhorng的提醒 08/26 17:37