将 QByteArray 从大端序转换为小端序
Convert QByteArray from big endian to little endian
本文关键字:转换 QByteArray 更新时间:2023-10-16
我想我在这里有点不知所措。我尝试这么简单的事情,我不敢相信没有什么内置的Qt(使用Qt 5.6.2(。我尝试将 QByteArray 中的数据从大端序转换为小端序。总是像这样从相同的测试 QByteArray 开始。
QByteArray value;
value.append(0x01);
value.append(0x02);
value.append(0x03);
qDebug() << "Original value is: " << value.toHex(); // “010203” like expected
我需要的是小端序,这意味着输出应该是"030201"。到目前为止,Qt框架中是否有任何内置功能?我找不到。到目前为止我尝试过什么
// Try with build in QtEndian stuff
QByteArray test = qToLittleEndian(value);
qDebug() << "Test value is: " << test.toHex(); // 010203
// Try via QDataStream
QByteArray data;
QDataStream out(&data, QIODevice::ReadWrite);
out.setByteOrder(QDataStream::LittleEndian);
out << value;
qDebug() << "Changed value is: " << data.toHex(); // "03000000010203"
有什么好主意吗?还是我真的需要手动换手?在 SO 或谷歌上找不到任何有用的东西,或者可能问了错误的问题......
听起来你想反转数组,而不是操纵数组内任何多字节类型的字节序。标准库对此有一个解决方案:
QByteArray arr;
std::reverse(arr.begin(), arr.end());
// arr is now in reversed order
相关文章:
- 如何将QByteArray转换为std::istream或std::ifstream?
- 将 QByteArray 转换为无符号短:不符合预期
- 如何将小端格式的QByteArray转换为无符号长整型
- 有没有办法"QByteArray"变量数据直接放入变量"int"而无需强制转换?
- 如何在不将其转换为 ASCII 字符的情况下显示 QByteArray 的十六进制值
- 将 QByteArray 从大端序转换为小端序
- 将 CRC uint 转换为 QByteArray QT - C++
- QByteArray 和 QString 转换的问题
- QByteArray 转换为十六进制失败
- 如何将QByteArray转换为QString?
- QT中的QByTearray转换
- QByTearray进行INT转换
- qbyTearray转换为char(不是char*或constchar*)
- 将 QByteArray 转换为“long”会为相同的输入输出不同的结果
- 将int转换为Qt中的QByteArray
- Qt:将QPixmap保存到std::vector<无符号字符>-或者将QByteArray转换为std::
- 将十六进制存储在 QBytearray 中,提取它并将其转换为十进制
- 如何将 QImage 转换为 QByteArray
- 问如何将QByteArray转换为struct
- 如何将 QByteArray 转换为带有分隔符"-"的 QString?