作者michael47 (hitman)
看板C_and_CPP
標題[問題] short assign給unsigned int的問題
時間Tue Aug 26 22:26:43 2014
開發平台(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