[英]C++ - Convert Char Array To Hex
我正在使用Arduino
开展一个学校项目,我过去没有使用C++
经验,我想为每个芯片生成一个唯一的MAC Address
。 现在我已经构建了一个函数来创建一个包含唯一MAC
二维char
数组。 它返回如下内容:
// 2D char array example:
char mac[6][2] = {{'A', 'B'}, {'4', 'D'}, {'F', '5'}, {'C', '9'}, {'B', '7'}, {'F', '2'}};
我想把它转换成这样的:
// Hex array example:
byte mac[6] = {0xAB, 0x4D, 0xF5, 0xC9, 0xB7, 0xF2};
重要说明:Arduino 不支持STL
所以我需要一个不使用它的实现。
如何达到这个结果?
这不是这个问题的重复。
byte HexCharToByte(char c) {
if (c >= '0' && c <= '9') {
return c - '0';
} else if (c >= 'A' && c <= 'F') {
return c - 'A' + 10;
} else if (c >= 'a' && c <= 'f') {
return c - 'a' + 10;
}
}
void TransformMac(char input[6][2], byte output[6]) {
for (int i = 0; i < 6; ++i) {
output[i] = (HexCharToByte(input[i][0]) << 4) | HexCharToByte(input[i][1]);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.