C+將十六進(jìn)制字符串轉(zhuǎn)換為有符號(hào)整數(shù)我希望在C+中將十六進(jìn)制字符串轉(zhuǎn)換為32位有符號(hào)整數(shù)。例如,我的十六進(jìn)制字符串“fffefffe”。其二進(jìn)制表示為111111111111101111111111111111111110。它的有符號(hào)整數(shù)表示為:-65538。如何在C+中進(jìn)行這種轉(zhuǎn)換?這也需要對(duì)非負(fù)數(shù)有效。例如,十六進(jìn)制字符串“0000000A”,二進(jìn)制數(shù)為0000000000000000000000001010,小數(shù)為10。
3 回答

蕪湖不蕪
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
只要堅(jiān)持C+就行了,我喜歡你的,但我有幾個(gè)mods:
template?<typename?ElemT>struct?HexTo?{ ????ElemT?value; ????operator?ElemT()?const?{return?value;} ????friend?std::istream&?operator>>(std::istream&?in,?HexTo&?out)?{ ????????in?>>?std::hex?>>?out.value; ????????return?in; ????}};
用過(guò)
uint32_t?value?=?boost::lexical_cast<HexTo<uint32_t>?>("0x2a");
這樣,每個(gè)int類型就不需要一次強(qiáng)制執(zhí)行。
- 3 回答
- 0 關(guān)注
- 1312 瀏覽
添加回答
舉報(bào)
0/150
提交
取消