c++ - 添加十六进制值以获得结果十六进制

标签 c++ wxwidgets hex

我想添加两个十六进制值以获得十六进制结果值我已经编写了以下代码但是当我打印结果值时结果值被写入例如 "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/

相关文章:

c++ - 不同类型气候条件的颜色编码背景

c++ - 我们可以在 O(1) 时间内反转一个堆栈吗

c++ - 可以使用 using 为数组键入别名吗?

c - 为什么 gcc 会为使用不同形式整数文字的程序生成不同的编译二进制文件?

java - C 和 Java 对十六进制值的按位运算不匹配

c++ - 修复了 g++ 4.9.1 奇怪的 "%a"格式行为?

c++ - 在类构造函数中初始化类的 std::array

python - 在 wxPython 中展开的 FoldPanelBar 上没有出现滚动条

c++ - wxDateTime ParseFormat() 毫秒

python - wxPython,改变 StyledTextCtrl 的背景颜色