如何将char [HEX]数组转换为整数?

时间:2013-04-11 03:20:17

标签: c++

我有char [HEX]数组。我不知道如何将它们转换为整数。 有人给我一个想法吗?

我的编码:

char Hex[] = {'01', '0D'};

int a = (int(Hex[0]) >> 8)+ int(Hex[1]);
int b = (Hex[0] << 8) | Hex[1];

cout << "a: " << a << " b: " << b;

输出:

a: 68 b: 12612

我想输出应该是:

269

2 个答案:

答案 0 :(得分:1)

您完全缺少的是ASCII转换。

'f'是一个字符,值为0x6f。显然这与0x0f不一样。

答案 1 :(得分:0)

你的问题很难弄明白。我想这就是你想要的。以下是将15转换为F和F为15的方法。我希望这就是你所要求的

#include<iostream>
#include<sstream>

int main(){
  // decimal to hex
  std::cout << std::hex << 15 << std::endl;

  // hex to decimal
  int mydecimal;
  std::istringstream("f") >> std::hex >> mydecimal;
  std::cout << std::dec << mydecimal << std::endl;

  // hex to decimal method 2
  std::cout << std::dec << 0xf << std::endl;
}