【问题标题】:C++ How to assign string as hexadecimal [duplicate]C ++如何将字符串分配为十六进制[重复]
【发布时间】:2013-05-06 04:17:52
【问题描述】:

我得到了这个字符串

0x3384BCFD
0x61CEB13B

两者都是字符串类型..

最初我得到了这个

uint32_t iv[2]  = {0xFFFFFFFF,0xFFFFFFAA};

如何将上面的 2 个字符串分配给 iv[0]iv[1]

我希望iv[2] 的最终结果为iv[2] = {0x3384BCFD,0x61CEB13B};

感谢您的帮助!

【问题讨论】:

    标签: c++


    【解决方案1】:

    由于它是 C++,我建议您使用带有操纵器的流:

    stringstream ss = stringstream("0x3384BCFD");
    ss >> hex >> iv[0];
    

    【讨论】:

    • 这确实是一个更好的主意。
    【解决方案2】:

    看看这不是在链接的骗局中:

    uint32_t iv[] = { //*cough* std::array exists as well
        std::stoul(strs[0], nullptr, 16), 
        std::stoul(strs[1], nullptr, 16)
    };
    

    【讨论】:

    • 这可能是最接近 OP 想要的,他可以在他的数组声明中使用它。
    • @Overv,好点子。我实际上会添加。
    【解决方案3】:
    #include <sstream>
    
    int main()
    {
        uint32_t iv[2];
    
        std::stringstream("0x3384BCFD 0x61CEB13B") >> std::hex >> iv[0] >> iv[1];
    }
    

    【讨论】:

      猜你喜欢
      • 2011-05-15
      • 2012-07-21
      • 2018-01-31
      • 2017-02-18
      • 2015-02-18
      • 1970-01-01
      • 2014-12-12
      • 2015-04-24
      • 2019-02-21
      相关资源
      最近更新 更多