将一个 2 字节整数转换并分解为 2 个不同的 uchar,C++具有 endianess 兼容性
Convert and break a 2 byte integer into 2 different uchars in C++ with endianess compatibility
我想转换一个无符号的int并将其分解为2个uchar。
For example:
uint16 current = 23;
uchar a[2];
我应该用语言来表达,a[0] 应该保持 3,a[1] 应该保持 1这应该与大端和小端系统兼容。
我试过了:
uint16 final = 23;
uchar a[2];
uint16 *current = (uint16 *)a;
*current = final;
但是,这有字节序问题
字节
序不是问题:
uint16_t a = 23;
uint8_t b[2];
b[0] = a & 0xff;
b[1] = a >> 8;
b[0]
将始终是低位字节,b[1]
高位字节。
相关文章:
- 使用 mat.at<uchar>(i,j) 的 opencv C++中的矩阵赋值错误
- 警告C4018,包含int和UINT32,但不包含int和UCHAR
- 如何使用 PPM 格式的 uchar* 数组填充 QPixmap
- 这个陈述'p = I.ptr<uchar>(i);有什么作用?
- 如何读取从UChar缓冲区到CV :: MAT的1位BMP
- 我可以将一个 uchar 数组用作单个 uchar 吗?
- C 如何从UCHAR数组中填充结构的位字段
- UCHAR to Qstring in QT C++
- OpenCV文档说"uchar"是"unsigned integer"数据类型。如何?
- 如何将UCHAR虚拟密钥代码转换为std::string
- 使用SSE或SSE3添加UCHAR阵列中的UCHAR值
- 标准::矢量<uchar>到字符* 数据丢失
- 在uchar类型的特征::矩阵和cv::Mat之间的转换
- 将<uchar> c++ 中的saturate_cast转换为 Java
- 将垫元素 (uchar) 写入.csv
- 将C++ to memcpy uchar 翻译成 int64
- 为什么我无法访问这个 uchar 数组?
- 将 uchar* 数据写入文件
- UCHAR* to std::string
- 如何将 CString 转换为 UCHAR 数组