【发布时间】:2020-05-07 06:57:57
【问题描述】:
如何将具有十六进制值的字符串转换为具有这些十六进制值的字节数组?顺便说一句,我正在使用 Arduino。
这个:
String s = "0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff";
需要转成这个:
char test[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
我使用了以下程序。它确实会转换它,但是,每个十六进制值都保存为一个字符,而不是十六进制值:
unsigned int str_len = s.length()+1;
char charArray[str_len];
s.toCharArray(charArray, str_len);
【问题讨论】:
-
我不会将 Arduino(库)用于任何目的,至少不会用于学习目的。至于怎么转换,
man strtoul. -
char test[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};-> "警告:从 'int' 到 'char' 的转换溢出将值从 '255' 更改为 '-1' [-Woverflow]" . -
@HamidReza 是有道理的,但我该如何为此编写算法?
标签: c++ parsing arduino hex microcontroller