从十六进制数组中读取Int

时间:2014-12-22 06:25:24

标签: c++

我有一个带十六进制值的输入数组,

const unsigned char arr[]={0x20, 0x34, 0x30};

我需要连接值arr[1]---> 0x34 ---> 4和                           arr[2]---> 0x30 ---> 0

到整数变量,如

int val = 40; 

如何在c ++中有效地完成这项工作?

1 个答案:

答案 0 :(得分:1)

正如The Paramagnetic Croissant评论的那样,您可以将数组转换为字符串(null至少终止)并使用strtol

示例:

const unsigned char arr[]={0x20, 0x34, 0x30};
string s(reinterpret_cast<const char*>(arr), 3);
int val = strtol(s.c_str(), nullptr, 10);