我有一个带十六进制值的输入数组,
const unsigned char arr[]={0x20, 0x34, 0x30};
我需要连接值arr[1]---> 0x34 ---> 4
和
arr[2]---> 0x30 ---> 0
到整数变量,如
int val = 40;
如何在c ++中有效地完成这项工作?
答案 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);