Arduino char 数组到整数值
Arduino char array to integer value
这里有一个愚蠢的问题:
我正在尝试将字符数组转换为整数。这是我的情况(从主代码中提取,我简单地说了..):
int val;
char *buff;
uint8_t v1 = 2;
uint8_t v2 = 25;
buff[0] = v1;
buff[1] = v2;
val = strtol(buff, NULL, 16);
在这种情况下,val 总是返回 '0',但是,如果我用 "0x225" 替换 'buff',它会返回期望值 549。
我做错了什么?提前感谢..
你需要学习C(C++实际上是用C++编程的)。
strtol 将字符串转换为数字。
C 中的字符串是以零结尾的 char 元素数组(不是 '0'
而是 0
)。所以"0x225"是{'0', 'x', '2', '2', '5', 0}
数组
'2'
不是数字2
.它是字符"2"的 ASCII 表示形式,十进制为 50。
buff[0] = '0';
buff[1] = 'x';
buff[2] = '2';
buff[3] = '2';
buff[4] = '5';
buff[5] = 0;
val = strtol(buff, NULL, 16);
buff[0] = 48;
buff[1] = 120;
buff[2] = 50;
buff[3] = 50;
buff[4] = 53;
buff[5] = 0;
val = strtol(buff, NULL, 16);
您的代码还有许多其他问题。您需要了解什么是 25 和什么是0x25(它们不相等)。你应该从书和PC编译器开始,从非常基本的东西开始学习语言。
相关文章:
- 从二进制文件中读取整数数组
- 新的整数数组向右移动?
- C++ 中的二维整数数组,每行中的元素数量不均匀
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 在 C++ 中将整数数组转换为位集表示形式的最佳方法?
- 从两个 4x64 位整数数组中获取取模
- 字符到整数数组
- 从函数参数 [C++] 复制整数数组
- 指向整数数组和打印总和的指针
- 使用可变参数函数将整数和/或整数数组放入单个 int 数组中
- 线程安全整数数组?
- 整数数组中最长的回文
- 在大整数数组中查找子数组
- 查找整数数组中最接近的数字
- 创建<int>对整数数组指针的矢量引用 (C++)
- 整数指针数组的元素是否可以指向整数数组?
- 如何将整数数组相乘得到一个数字?
- 当 map 是一个整数数组并且由 operator[] 创建时,它是否初始化其映射类型
- 将文本文件读入整数数组