<QtEndian> - Endian Conversion Functions
<QtEndian> 头文件提供了用于在数字的小端序和大端序表示之间进行转换的函数。更多内容...
| Header: | #include <QtEndian> |
类型
| qint16_be | |
| qint16_le | |
| qint32_be | |
| qint32_le | |
| qint64_be | |
| qint64_le | |
| quint16_be | |
| quint16_le | |
| quint32_be | |
| quint32_le | |
| quint64_be | |
| quint64_le |
函数
| T | qFromBigEndian(const void *src) |
| void | qFromBigEndian(const void *src, qsizetype count, void *dest) |
| T | qFromBigEndian(T src) |
| T | qFromLittleEndian(const void *src) |
| void | qFromLittleEndian(const void *src, qsizetype count, void *dest) |
| T | qFromLittleEndian(T src) |
| void | qToBigEndian(T src, void *dest) |
| void | qToBigEndian(const void *src, qsizetype count, void *dest) |
| T | qToBigEndian(T src) |
| void | qToLittleEndian(T src, void *dest) |
| void | qToLittleEndian(const void *src, qsizetype count, void *dest) |
| T | qToLittleEndian(T src) |
类型文档
qint16_be
QBEInteger<QINT16> 的 typedef 定义。在 Qt 支持的所有平台上,该类型在内存中均保证以 16 位大端序有符号整数的形式存储。
另请参见 qint16 。
qint16_le
QLEInteger<QINT16> 的 typedef 定义。在 Qt 支持的所有平台上,该类型在内存中均保证以 16 位小端序有符号整数的形式存储。
另请参阅 qint16 。
qint32_be
QBEInteger<QINT32> 的类型别名。在 Qt 支持的所有平台上,该类型在内存中均保证以 32 位大端序有符号整数的形式存储。
另请参阅 qint32 。
qint32_le
QLEInteger<QINT32> 的 typedef 定义。在 Qt 支持的所有平台上,该类型在内存中均保证以 32 位小端序有符号整数的形式存储。
另请参阅 qint32 。
qint64_be
QBEInteger<QINT64> 的 typedef 定义。在 Qt 支持的所有平台上,该类型在内存中均保证以 64 位大端序有符号整数的形式存储。
另请参阅 qint64 。
qint64_le
QLEInteger<QINT64> 的 typedef 定义。在 Qt 支持的所有平台上,该类型均保证以 64 位小端序有符号整数的形式存储在内存中。
另请参阅 qint64 。
quint16_be
QBEInteger<QUINT16> 的 typedef。在 Qt 支持的所有平台上,该类型在内存中均保证以 16 位大端序无符号整数的形式存储。
另请参阅 quint16 。
quint16_le
QLEInteger<QUINT16> 的 typedef 定义。在 Qt 支持的所有平台上,该类型在内存中的存储形式均保证为 16 位小端序无符号整数。
另请参阅 quint16 。
quint32_be
QBEInteger<QUINT32> 的类型别名。在 Qt 支持的所有平台上,该类型在内存中均保证以 32 位大端序无符号整数的形式存储。
另请参阅 quint32 。
quint32_le
QLEInteger<QUINT32> 的 typedef。在 Qt 支持的所有平台上,该类型在内存中均保证以 32 位小端序无符号整数的形式存储。
另请参阅 quint32 。
quint64_be
QBEInteger<QUINT64> 的 typedef 定义。在 Qt 支持的所有平台上,该类型在内存中均保证以 64 位大端序无符号整数的形式存储。
另请参阅 quint64 。
quint64_le
QLEInteger<QUINT64> 的类型别名。在 Qt 支持的所有平台上,该类型在内存中均保证以 64 位小端序无符号整数的形式存储。
另请参阅 quint64 。
函数文档
template <typename T> T qFromBigEndian(const void *src)
从内存地址src 读取一个大端序数,并以主机的字节序表示形式返回该数。在主机字节序为小端序的 CPU 架构(如 x86)上,此操作会交换字节序;否则,它将直接从src 读取数据。
注意:模板 类型T 可以是 quint16、qint16、quint32、qint32、quint64 或 qint64 中的任意一种。其他类型的整数(例如 qlong)不适用。
注意:自 Qt 5.7 起,src 参数的类型为 void 指针。
src 没有数据对齐限制。
另请参阅 qFromLittleEndian()、qToBigEndian() 和qToLittleEndian()。
template <typename T> void qFromBigEndian(const void *src, qsizetype count, void *dest)
从内存位置src 读取count 的大端序数,并将其以主机字节序形式存储到dest 。在主机字节序为小端序的 CPU 架构(如 x86)上,此操作将交换字节顺序;否则,它仅执行从src 到dest 的memcpy 操作。
注意:模板 类型T 可以是 quint16、qint16、quint32、qint32、quint64 或 qint64 中的任意一种。其他类型的整数(例如 qlong)不适用。
对于src 没有数据对齐限制。但是,dest 应针对类型T 自然对齐。
如果src 和dest 可以是同一个指针,则该函数将执行就地交换(如有必要)。如果它们不是同一个指针,则内存区域不得重叠。
另请参阅 qFromLittleEndian()、qToBigEndian() 和qToLittleEndian()。
[constexpr] template <typename T> T qFromBigEndian(T src)
将大端字节序的src 转换为该数值在主机字节序下的表示形式,并返回结果。在主机字节序为小端(如x86)的CPU架构上,该函数将返回字节序被交换后的src ;否则将返回未修改的src 。
这是一个重载函数。
template <typename T> T qFromLittleEndian(const void *src)
从内存地址src 读取一个小端序数,并以主机的字节序表示形式返回该数。在主机字节序为大端序的 CPU 架构(如 PowerPC)上,此操作会交换字节序;否则,它将直接从src 读取数据。
注意:模板 类型T 可以是 quint16、qint16、quint32、qint32、quint64 或 qint64 中的任意一种。其他类型的整数(例如 qlong)不适用。
注意:自 Qt 5.7 起,src 参数的类型为 void 指针。
src 没有数据对齐限制。
另请参阅 qFromBigEndian()、qToBigEndian() 和qToLittleEndian()。
template <typename T> void qFromLittleEndian(const void *src, qsizetype count, void *dest)
从内存位置src 读取count 个小端序数,并将它们以主机字节序的形式存储在dest 中。在主机字节序为大端序的 CPU 架构(如 PowerPC)上,这将交换字节序;否则,它将仅执行从src 到dest 的memcpy 操作。
注意:模板 类型T 可以是 quint16、qint16、quint32、qint32、quint64 或 qint64 之一。其他类型的整数(例如 qlong)不适用。
对于src 没有数据对齐限制。但是,dest 应针对类型T 自然对齐。
如果src 和dest 可以是同一个指针,则本函数将执行就地交换(如有必要)。如果它们不是同一个指针,则内存区域不得重叠。
另请参阅 qToBigEndian() 和qToLittleEndian()。
[constexpr] template <typename T> T qFromLittleEndian(T src)
将src 从小端字节序转换,并返回该数值在主机字节序下的表示形式。在主机字节序为大端字节序的CPU架构(如PowerPC)上,此函数将返回字节序被交换后的src ;否则将返回未修改的src 。
这是一个重载函数。
template <typename T> void qToBigEndian(T src, void *dest)
将数值src (模板类型为T )以大端字节序写入内存位置dest 。
注意:模板 类型T 可以是 quint16、qint16、quint32、qint32、quint64 或 qint64 中的任意一种。其他类型的整数(例如 qlong)不适用。
dest 没有数据对齐限制。
注意:自 Qt 5.7 起,dest 参数的类型为 void 指针。
另请参阅 qFromBigEndian()、qFromLittleEndian() 和qToLittleEndian()。
template <typename T> void qToBigEndian(const void *src, qsizetype count, void *dest)
从内存位置src 读取count 格式的数值(采用主机字节序),并将其以大端序形式存储到dest 。在主机字节序为小端序的 CPU 架构(如 x86)上,此操作会交换字节顺序;否则,它仅执行从src 到dest 的memcpy 操作。
注意:模板 类型T 可以是quint16、qint16、quint32、qint32、quint64或qint64。其他类型的整数(例如qlong)不适用。
对于dest 没有数据对齐限制。但是,src 应针对类型T 自然对齐。
如果src 和dest 可以是同一个指针,则本函数将执行就地交换(如有必要)。如果它们不是同一个指针,则内存区域不得重叠。
另请参阅 qFromLittleEndian()、qToBigEndian(),以及qToLittleEndian()。
[constexpr] template <typename T> T qToBigEndian(T src)
将src 从主机字节序转换为大端字节序,并返回该数的 大端字节序表示形式。在主机字节序为小端字节序的 CPU 架构(如 x86)上,该函数将返回字节序被交换后的src ;否则将返回未修改的src 。
这是一个重载函数。
template <typename T> void qToLittleEndian(T src, void *dest)
将数字src (模板类型为T )以小端字节序写入内存位置dest 。
注意:模板 类型T 可以是 quint16、qint16、quint32、qint32、quint64 或 qint64 之一。其他类型的整数(例如 qlong)不适用。
dest 没有数据对齐限制。
注意:自 Qt 5.7 起,dest 参数的类型为 void 指针。
另请参阅 qFromBigEndian()、qFromLittleEndian() 和qToBigEndian()。
template <typename T> void qToLittleEndian(const void *src, qsizetype count, void *dest)
从内存位置src 读取count 格式的数值(按主机字节序),并以小端字节序的形式将其存储到dest 。在主机字节序为大端字节序的 CPU 架构(如 PowerPC)上,此操作将交换字节序;否则,它仅执行从src 到dest 的memcpy 操作。
注意:模板 类型 `T ` 可以是 `quint16`、`qint16`、`quint32`、`qint32`、`quint64` 或 `qint64`。其他类型的整数(例如 `qlong`)不适用。
对于dest 没有数据对齐限制。但是,src 应针对类型T 自然对齐。
如果src 和dest 可以是同一个指针,则该函数将执行就地交换(如有必要)。如果它们不是同一个指针,则内存区域不得重叠。
另请参阅 qFromLittleEndian()、qToBigEndian(),以及qToLittleEndian()。
[constexpr] template <typename T> T qToLittleEndian(T src)
将src 从主机字节序转换为小端字节序,并返回该数的src 表示形式。在主机字节序为大端字节序的CPU架构(如PowerPC)上,此函数将返回字节序被交换后的 ;否则将返回未修改的src 。
这是一个重载函数。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.