C+將十六進制字符串轉換為有符號整數我希望在C+中將十六進制字符串轉換為32位有符號整數。例如,我的十六進制字符串“fffefffe”。其二進制表示為111111111111101111111111111111111110。它的有符號整數表示為:-65538。如何在C+中進行這種轉換?這也需要對非負數有效。例如,十六進制字符串“0000000A”,二進制數為0000000000000000000000001010,小數為10。
3 回答
蕪湖不蕪
TA貢獻1796條經驗 獲得超7個贊
只要堅持C+就行了,我喜歡你的,但我有幾個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;
????}};用過
uint32_t?value?=?boost::lexical_cast<HexTo<uint32_t>?>("0x2a");這樣,每個int類型就不需要一次強制執行。
- 3 回答
- 0 關注
- 1349 瀏覽
添加回答
舉報
0/150
提交
取消
