如何将字符串赋值为十六进制

C++ How to assign string as hexadecimal

本文关键字:十六进制 赋值 字符串      更新时间:2023-10-16

我得到了这个字符串

0x3384BCFD
0x61CEB13B

都是字符串类型…

一开始我得到这个

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

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

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

谢谢你的帮助!

看这是如何不在链接的欺骗:

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

由于是c++,我建议您使用带有操纵符的流:

stringstream ss = stringstream("0x3384BCFD");
ss >> hex >> iv[0];
#include <sstream>
int main()
{
    uint32_t iv[2];
    std::stringstream("0x3384BCFD 0x61CEB13B") >> std::hex >> iv[0] >> iv[1];
}