Arduino:从两个十进制字符串中获取十六进制值
Arduino: Get Hex value from two decimal strings
我想做一个转换,但不知道怎么做。
最初,我得到一个十六进制值,如03 EE
,它表示1006
。现在,这些数据以字符串数组和小数形式表示:
[0] = "3"
[1] = "238"
从这种情况下,返回十进制1006
的最简单方法是什么?
我在带有C++的Arduino上这样做
应该这样做:
const char* s[] = {"3", "238"};
int result = (std::stoi(std::string(s[0])) << 8)
+ std::stoi(std::string(s[1]));
std::cout << result;
请注意,我使用std::stoi
,如果你不喜欢,请参阅:将字符串转换为int C++
实例
由于Arduino的String
不能处理十六进制表示,您应该手动或使用其他库来处理(例如,如果可能的话,使用标准C库中的sprintf
)。这是一种手动方式:
int decBytesToInt(const String &msByte, const String &lsByte)
{
int res = 0;
res |= (msByte.toInt() & 0xFF) << 8;
res |= (lsByte.toInt() & 0xFF);
}
CCD_ 7和CCD_。
当然,假设int
是16位的。
相关文章:
- 将字符串(可以是十进制字符串或十六进制字符串)转换为整数C++
- 使用标准库计算字符串中的十进制数
- 如何在C ++中将二进制字符串128位转换为十进制字符串?
- 十进制到八进制递归C++.以标准::字符串格式输出
- 如何将带有浮点数的字符串转换为十进制?
- C++十进制到十六进制(字符串下标超出范围)
- 以C++格式将十六进制字符串转换为十进制数
- 将二进制字符串转换为十进制
- 使用堆栈将字符串格式的十进制转换为双精度
- 字符串到 Unicode,Unicode 到十进制码位 (C++)
- 如何使用C 将二进制数字的字符串转换为其签名的十进制表示
- C 如何将双重转换为字符串,因此它仅在十进制后显示2位数字
- C++:二进制标准::字符串到十进制
- 将双精度转换为精度超过 5 位十进制数字的字符串
- 将字符串中的十进制转换为二进制时出错
- 将浮点数转换为字符串,并指定精度和十进制数字数?
- 这是从二进制字符串转换为十进制值的无效方法吗?
- 如何将数字转换为十进制字符串
- 将双十进制数字转换为HEX字符串
- 转换字符串十进制数时的精度