看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform):Linux GCC // Code: short short_int_1; unsigned int u_int_tmp; short_int_1 = 0xF0F0; u_int_tmp = short_int_1; printf("u_int_tmp = %#010x\n", u_int_tmp); u_int_tmp = 0; printf("u_int_tmp = %#010x\n", u_int_tmp); u_int_tmp = u_int_tmp | short_int_1; printf("u_int_tmp = %#010x\n", u_int_tmp); ----------------------------------------------------- 輸出結果: u_int_tmp = 0xfffff0f0 u_int_tmp = 0000000000 u_int_tmp = 0xfffff0f0 想請問我想要將short assign給unsigned int, 並且希望不要像上面u_int_tmp在0xF0F0前面都加f 希望的結果是u_int_tmp = 0x0000f0f0 請問要如何做到? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.2.127 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1409063210.A.558.html
Schottky: 你有意識到這 signed short 是負數嗎? 08/26 22:53
michael47: 請問有辦法將short以bit copy的方式assign給int嗎? 08/26 23:01
michael47: 回樓上,我知道這個short是負數 08/26 23:02
LPH66: (unsigned int)(unsigned short)signed_short_value 08/26 23:13
firose: sign extension / zero extension 08/26 23:18
michael47: 感謝LPH66的方法 08/26 23:19
michael47: 我會找時間搜尋firose的提示,感謝分享資訊 08/26 23:29
suhorng: 話說那樣 signed 轉 unsigned 到底是怎麼定義的呢? 08/27 16:42
shadow0326: 我想應該是根據6.3.1.3#2 08/27 16:50
suhorng: got it thanks 08/27 17:06