<QtEndian> - Endian Conversion Functions

<QtEndian> 头提供了在数字的小端和大端表示之间进行转换的函数。更多

Header: #include <QtEndian>

类型

函数

T qFromBigEndian(const void *src)
T qFromBigEndian(T src)
void qFromBigEndian(const void *src, qsizetype count, void *dest)
T qFromLittleEndian(const void *src)
T qFromLittleEndian(T src)
void qFromLittleEndian(const void *src, qsizetype count, void *dest)
void qToBigEndian(T src, void *dest)
T qToBigEndian(T src)
void qToBigEndian(const void *src, qsizetype count, void *dest)
void qToLittleEndian(T src, void *dest)
T qToLittleEndian(T src)
void qToLittleEndian(const void *src, qsizetype count, void *dest)

详细说明

类型文档

qint16_be

QBEInteger<qint16>的类型定义。在 Qt 支持的所有平台上,该类型保证以 16 位大端有符号整数形式存储在内存中。

另请参见 qint16

qint16_le

QLEInteger<qint16>的类型定义。在 Qt 支持的所有平台上,该类型保证以 16 位 little-endian 有符号整数形式存储在内存中。

另请参见 qint16

qint32_be

QBEInteger<qint32>的类型定义。在 Qt 支持的所有平台上,该类型保证以 32 位大端有符号整数的形式存储在内存中。

另请参见 qint32

qint32_le

QLEInteger<qint32>的类型定义。在 Qt 支持的所有平台上,该类型保证以 32 位 little-endian 有符号整数形式存储在内存中。

另请参见 qint32

qint64_be

QBEInteger<qint64>的类型定义。在 Qt 支持的所有平台上,该类型保证以 64 位大端有符号整数形式存储在内存中。

另请参见 qint64

qint64_le

QLEInteger<qint64>的类型定义。在 Qt 支持的所有平台上,该类型保证以 64 位 little-endian 有符号整数形式存储在内存中。

另请参见 qint64

quint16_be

QBEInteger<quint16>的类型定义。在 Qt 支持的所有平台上,该类型保证以 16 位大端无符号整数形式存储在内存中。

另请参见 quint16

quint16_le

QLEInteger<quint16>的类型定义。在 Qt 支持的所有平台上,该类型保证以 16 位 little-endian 无符号整数形式存储在内存中。

另请参见 quint16

quint32_be

QBEInteger<quint32>的类型定义。在 Qt 支持的所有平台上,该类型保证以 32 位大端无符号整数形式存储在内存中。

另请参见 quint32

quint32_le

QLEInteger<quint32>的类型定义。在 Qt 支持的所有平台上,该类型保证以 32 位 little-endian 无符号整数形式存储在内存中。

另请参见 quint32

quint64_be

QBEInteger<quint64>的类型定义。在 Qt 支持的所有平台上,该类型保证以 64 位大端无符号整数形式存储在内存中。

另请参见 quint64

quint64_le

QLEInteger<quint64>的类型定义。在 Qt 支持的所有平台上,该类型保证以 64 位 little-endian 无符号整数形式存储在内存中。

另请参见 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()。

[constexpr] template <typename T> T qFromBigEndian(T src)

这是一个重载函数。

src 从大字节序转换为小字节序,并返回该数字在主机字节序中的表示形式。在主机字节序为小字节序的 CPU 体系结构中(如 x86),该函数将在交换字节序后返回src ,否则将不经修改返回src

template <typename T> void qFromBigEndian(const void *src, qsizetype count, void *dest)

从内存位置src 读取count 大端数字,并将其存储到主机字节序表示位置dest 。在主机字节序为小字节序的 CPU 架构上(如 x86),这将交换字节序;否则,它将只执行从srcdestmemcpy

注意: 模板类型T 可以是 quint16、qint16、quint32、qint32、quint64 或 qint64。其他整数类型(如 qlong)不适用。

src 没有数据对齐限制。不过,dest 应与T 类型自然对齐。

如果srcdest 可以是同一个指针,该函数将执行就地交换(如有必要)。如果它们不相同,则内存区域不得重叠。

另请参见 qFromLittleEndian()、qToBigEndian() 和qToLittleEndian()。

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()。

[constexpr] template <typename T> T qFromLittleEndian(T src)

这是一个重载函数。

src 从小字节序转换为大字节序,并返回该数字在主机字节序中的表示形式。在主机字节序为大字节序的 CPU 架构上(如 PowerPC),该函数将在交换字节序后返回src ,否则将不经修改返回src

template <typename T> void qFromLittleEndian(const void *src, qsizetype count, void *dest)

从内存位置src 读取count 小字节序数,并将其存储到主机字节序表示位置dest 。在主机字节序为大三位数的 CPU 架构上(如 PowerPC),这将交换字节序;否则,它将只执行从srcdestmemcpy

注意: 模板类型T 可以是 quint16、qint16、quint32、qint32、quint64 或 qint64。其他整数类型(如 qlong)不适用。

src 没有数据对齐限制。不过,dest 应与T 类型自然对齐。

如果srcdest 可以是同一个指针,该函数将执行就地交换(如有必要)。如果它们不相同,则内存区域不得重叠。

另请参见 qToBigEndian() 和qToLittleEndian()。

template <typename T> void qToBigEndian(T src, void *dest)

将模板类型为T 的数字src 按大字节顺序写入dest 的内存位置。

注意: 模板类型T 可以是 quint16、qint16、quint32、qint32、quint64 或 qint64。其他整数类型(如 qlong)不适用。

dest 没有数据对齐限制。

注: 自 Qt 5.7 起,dest 参数的类型为 void 指针。

另请参阅 qFromBigEndian()、qFromLittleEndian() 和qToLittleEndian()。

[constexpr] template <typename T> T qToBigEndian(T src)

这是一个重载函数。

转换src 的主机字节序,并返回该数字的大字节序表示。在主机字节序为小字节序的 CPU 架构上(如 x86),该函数将返回字节序对调后的src ,否则将返回未修改的src

template <typename T> void qToBigEndian(const void *src, qsizetype count, void *dest)

按主机字节序从内存位置src 读取count 数字,并将其以大端表示法存储在dest 。在主机字节顺序为小字节序的 CPU 架构上(如 x86),这将交换字节顺序;否则,它将只执行从srcdestmemcpy

注意: 模板类型T 可以是 quint16、qint16、quint32、qint32、quint64 或 qint64。其他整数类型(如 qlong)不适用。

dest 没有数据对齐限制。不过,src 应与T 类型自然对齐。

如果srcdest 可以是同一个指针,该函数将执行就地交换(如有必要)。如果它们不相同,则内存区域不得重叠。

另请参见 qFromLittleEndian()、qToBigEndian() 和qToLittleEndian()。

template <typename T> void qToLittleEndian(T src, void *dest)

将模板类型为T 的数字src 按小字节顺序写入dest 的内存位置。

注意: 模板类型T 可以是 quint16、qint16、quint32、qint32、quint64 或 qint64。其他整数类型(如 qlong)不适用。

dest 没有数据对齐限制。

注: 自 Qt 5.7 起,dest 参数的类型为 void 指针。

另请参阅 qFromBigEndian()、qFromLittleEndian() 和qToBigEndian()。

[constexpr] template <typename T> T qToLittleEndian(T src)

这是一个重载函数。

转换src 的主机字节序,并返回该数字的小字节序表示形式。在主机字节序为大字节序的 CPU 架构上(如 PowerPC),该函数将在交换字节序后返回src ,否则将不经修改返回src

template <typename T> void qToLittleEndian(const void *src, qsizetype count, void *dest)

按主机字节顺序从内存位置src 读取count 数字,并以小字节表示法存储在dest 。在主机字节顺序为大三位数的 CPU 架构上(如 PowerPC),这将交换字节顺序;否则,它将只执行从srcdestmemcpy

注意: 模板类型T 可以是 quint16、qint16、quint32、qint32、quint64 或 qint64。其他整数类型(如 qlong)不适用。

dest 没有数据对齐限制。不过,src 应与T 类型自然对齐。

如果srcdest 可以是同一个指针,该函数将执行就地交换(如有必要)。如果它们不相同,则内存区域不得重叠。

另请参见 qFromLittleEndian()、qToBigEndian() 和qToLittleEndian()。

© 2025 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.