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