C ++相当于python decode('hex')

时间:2018-04-13 05:42:04

标签: c++ hex decode

在python中如果我有i = '0000000000000000d0ed77c1f924ac20',我可以运行i.decode('hex')来获取字符串'\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xedw\xc1\xf9$\xac '。我已经搜遍了C / C ++中的等效功能无济于事。是否有一些库执行此等效功能或我如何自己实现?我知道它将不可打印的字符显示为十六进制和打印的可打印字符 - 但我需要与Python完全相同的实现,我不确定自己是否自己创建了一个表,我会把它弄好。

1 个答案:

答案 0 :(得分:0)

C ++中有std::hex个操纵器用于转换十六进制int。如果你有一个十六进制字符串,那么你可以使用std::stoul(在C ++ 11中引入)。

int main()
{
    std::string s = "0xfffefffe";
    long long int x = std::stoul(s, nullptr, 16);
    std::cout << x << "\n";
    long long input_hex = 0xfffefffe;
    std::cin >> std::hex >> input_hex;
    std::cout << input_hex << std::endl;

    return 0;
}