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 关注
- 1272 浏览
添加回答
举报
0/150
提交
取消