为了账号安全,请及时绑定邮箱和手机立即绑定

C+将十六进制字符串转换为有符号整数

C+将十六进制字符串转换为有符号整数

C++
慕森王 2019-06-21 15:26:16
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类型就不需要一次强制执行。


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 1272 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信