我想添加两个十六进制值以获得十六进制结果值我已经编写了以下代码但是当我打印结果值时结果值被写入例如 "abc"->61+62+63 =186
但是在编写 jk ->6a+6b
时我应该得到类似 d5
的东西,但是它给出了 12
。
这是我写的代码:
我还将全局变量定义为
char buffer[20];
long int li ;
for (int i = 0; i < length; ++i) {
itoa(TextAlia[i], buffer, 16);
li = li + atol (buffer);
}
最佳答案
li = li + atol (buffer);
atol
在第一个非数字(十进制)处停止。要解析十六进制表示,请使用
li += strtol(buffer, NULL, 16);
关于c++ - 添加十六进制值以获得结果十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11543068/