将十六进制字符数组转换为字节数组Arduino

标签 c arrays arduino

如何将char数组转换为Byte数组?

char CardNumber[8] = "B763AB23"; // Length is 8, basically it's in Hex
                                 // B7 63 AB 23

我需要将其转换为字节数组为 byte CardNumberByte[4];所以基本上,它应该是这样的:

CardNumberByte[0] = B7;
CardNumberByte[1] = 63;
CardNumberByte[2] = AB;
CardNumberByte[3] = 23;

我找不到任何解决方案。

最佳答案

union 
{
uint32_t number;
uint8_t CardNumberByte[4];
} CardNum;

char cn[] = "B763AB23";

和“转化”:

CardNum.Number = strtol(cn, NULL, 16);

您的字节可通过以下方式获得

CardNum.CardNumberByte[xx]

但我认为你应该从初学者 C++ 教程开始,学习一些基础知识。

关于将十六进制字符数组转换为字节数组Arduino,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44735630/

相关文章:

javascript - proxychains 无法加载进程?

无法解决此代码的问题

c - 什么是 (void (**) ()) 以及如何对它进行类型定义?

arrays - Swift Alamofire 将值赋给字符串

javascript - 使用for循环显示数组

python - Raspberry Pi & Arduino 读取串行传感器数据

python - Python 中的树莓派 UART 中断

objective-c - 为什么在我的 Objective-C 代码中间接调用时此 C 数组为 NULL? (cocos2d)

php - 将多个关联数组数据插入MySQL数据库

php - Arduino 没有正确地将数字发送到 SQL(通过 PHP)