我将简要解释我想做的事情并感谢您的帮助。
我有一个十六进制数,格式为 16 字节数,如下所示:
1: std::string myhex = "00000000000000000000000000000FFD";
然后我想把它转换成int。我认为我成功地使用了这个:
// convert hex to int
unsigned int x = strtoul(myhex.c_str(), NULL, 16);
printf("x = %d\n", x); // prints 4093 as needed
现在,我想将此整数转换回十六进制。我认为我也成功地使用了这个:
// Convert int back to hex
char buff[50];
string hexval;
sprintf(buff,"%x",x);
hexval = buff;
cout << hexval.c_str(); // prints "ffd".
但我的问题是,现在,我想将上面的“ffd”字符串转换回以前的格式,例如,用零填充的 16 字节数,如下所示:
00000000000000000000000000000FFD
我想转换字符串不仅打印它。
任何帮助如何做到这一点?如果我在上面实现的任何内容是错误的或不正确的,也欢迎任何更正。最好我也希望它也能在 Linux 上编译。