无符号整型转换
Unsigned int conversion C++
我正在尝试用c++编写串行程序。我正在发送一个由几个uint8_t和几个uint16_t组成的字符数组,我正试图拆分和发送。
char buf[3];
uint16_t var=1500;
它们之间有什么区别(如果有的话):
buf[0]= var & 0xFF; buf[1]= var >> 8;
和
buf[0]= (uint8_t)(var & 0xFF); buf[1]= var >> 8;
另一端首先使用LSB期待16位整数,出于某种原因,我只是认为我没有得到预期的串行写入。我知道发生这种情况的原因有很多,但我只是想在这里把我的头脑集中在这个概念上。
大多数串行协议都需要大端顺序的数据。在这种情况下,你应该只做*reinterpret_cast<short*>(buf) = htons(var)
。如果您确实需要小端序,请使用htole16
,在string/endian.h
中定义。
相关文章:
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- JNI 日期值转换问题,在C++中获取不同的长整型值
- 提升不良词法强制转换:将字符串转换为无符号长整型时,无法将源类型值解释为目标
- 将最小值整数转换为无符号长整型
- 如何将小端格式的QByteArray转换为无符号长整型
- 将整型转换为浮点型时检测溢出
- 是否存在将长整型转换为指针有效的情况
- 将字符串中以十六进制形式存储的负长整型值转换为 C++ 中的长整型变量
- 错误:请求从 std::chrono::time_point 浮点数转换为非标量类型长整型
- 如何以优雅高效的方式将无符号/有符号整数/长整型转换为 C 字符串?
- 将 BYTE 数组转换为无符号长整型
- 如何在 c++ 中将十六进制字符串转换为长整型字符串
- C++ :如何从 JSON 获取长整型值并将其转换为 time_point
- 将C++整型模板参数转换为整型"longer"型
- 如何使用 avx 指令将浮点数向量转换为短整型?
- 将字符串转换为长整型
- C++ 从文件中读取字符,转换为长整型
- iOS - 隐式转换将整数精度"size_t"(也称为"无符号长整型")丢失为&
- C++:将无符号长整型长整型转换为无符号长整型