NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
endian结构体 参考

端序转换工具结构体 更多...

#include <endian.hpp>

静态 Public 成员函数

static NEFORCE_NODISCARD NEFORCE_CONST_FUNCTION NEFORCE_ALWAYS_INLINE bool is_little_endian_runtime () noexcept
 运行时检测是否为小端序
static constexpr uint16_t byteswap16 (uint16_t value) noexcept
 16位整数字节序反转
static constexpr uint32_t byteswap32 (uint32_t value) noexcept
 32位整数字节序反转
static constexpr uint64_t byteswap64 (uint64_t value) noexcept
 64位整数字节序反转
template<typename T>
static constexpr T host_to_network (T value) noexcept
 主机序转网络序
template<typename T>
static constexpr T network_to_host (T value) noexcept
 网络序转主机序
template<typename T>
static constexpr T host_to_le (T value) noexcept
 主机序转小端序
template<typename T>
static constexpr T le_to_host (T value) noexcept
 小端序转主机序
template<typename T>
static constexpr T host_to_be (T value) noexcept
 主机序转大端序
template<typename T>
static constexpr T be_to_host (T value) noexcept
 大端序转主机序
template<typename T>
static constexpr T swap_endian (T value) noexcept
 字节序反转(不区分端序)
static constexpr uint16_t read_le16 (const byte_t *data) noexcept
 读取16位小端整数
static constexpr uint32_t read_le32 (const byte_t *data) noexcept
 读取32位小端整数
static constexpr uint64_t read_le64 (const byte_t *data) noexcept
 读取64位小端整数
static constexpr uint16_t read_be16 (const byte_t *data) noexcept
 读取16位大端整数
static constexpr uint32_t read_be32 (const byte_t *data) noexcept
 读取32位大端整数
static constexpr uint64_t read_be64 (const byte_t *data) noexcept
 读取64位大端整数
static constexpr void write_le16 (byte_t *dest, uint16_t value) noexcept
 写入16位小端整数
static constexpr void write_le32 (byte_t *dest, uint32_t value) noexcept
 写入32位小端整数
static constexpr void write_le64 (byte_t *dest, uint64_t value) noexcept
 写入64位小端整数
static constexpr void write_be16 (byte_t *dest, uint16_t value) noexcept
 写入16位大端整数
static constexpr void write_be32 (byte_t *dest, uint32_t value) noexcept
 写入32位大端整数
static constexpr void write_be64 (byte_t *dest, uint64_t value) noexcept
 写入64位大端整数

静态 Public 属性

static constexpr bool is_little_endian
 编译时检测是否为小端序
static constexpr bool is_big_endian = !is_little_endian
 编译时检测是否为大端序

详细描述

端序转换工具结构体

提供编译时和运行时的端序检测,以及各种端序转换函数。 支持整型类型的字节序转换和原始字节数组的读写操作。

在文件 endian.hpp33 行定义.

成员函数说明

◆ be_to_host()

template<typename T>
constexpr T endian::be_to_host ( T value)
inlinestaticconstexprnoexcept

大端序转主机序

模板参数
T整数类型
参数
value大端序的值
返回
主机序的值

大端序转主机序与主机序转大端序相同(对称操作)。

在文件 endian.hpp216 行定义.

引用了 host_to_be() , 以及 is_integral_v.

◆ byteswap16()

constexpr uint16_t endian::byteswap16 ( uint16_t value)
inlinestaticconstexprnoexcept

16位整数字节序反转

参数
value输入值
返回
字节序反转后的值

在文件 endian.hpp68 行定义.

◆ byteswap32()

constexpr uint32_t endian::byteswap32 ( uint32_t value)
inlinestaticconstexprnoexcept

32位整数字节序反转

参数
value输入值
返回
字节序反转后的值

在文件 endian.hpp75 行定义.

◆ byteswap64()

constexpr uint64_t endian::byteswap64 ( uint64_t value)
inlinestaticconstexprnoexcept

64位整数字节序反转

参数
value输入值
返回
字节序反转后的值

在文件 endian.hpp85 行定义.

◆ host_to_be()

template<typename T>
constexpr T endian::host_to_be ( T value)
inlinestaticconstexprnoexcept

主机序转大端序

模板参数
T整数类型
参数
value主机序的值
返回
大端序的值

大端序系统直接返回,小端序系统执行字节序反转。

在文件 endian.hpp202 行定义.

引用了 is_integral_v.

被这些函数引用 be_to_host().

◆ host_to_le()

template<typename T>
constexpr T endian::host_to_le ( T value)
inlinestaticconstexprnoexcept

主机序转小端序

模板参数
T整数类型
参数
value主机序的值
返回
小端序的值

小端序系统直接返回,大端序系统执行字节序反转。

在文件 endian.hpp174 行定义.

引用了 is_integral_v.

被这些函数引用 le_to_host().

◆ host_to_network()

template<typename T>
constexpr T endian::host_to_network ( T value)
inlinestaticconstexprnoexcept

主机序转网络序

模板参数
T整数类型(支持2、4、8字节)
参数
value主机序的值
返回
网络序的值

网络字节序为大端序。 大端序系统直接返回,小端序系统执行字节序反转。

在文件 endian.hpp146 行定义.

引用了 is_integral_v.

被这些函数引用 network_to_host().

◆ le_to_host()

template<typename T>
constexpr T endian::le_to_host ( T value)
inlinestaticconstexprnoexcept

小端序转主机序

模板参数
T整数类型
参数
value小端序的值
返回
主机序的值

小端序转主机序与主机序转小端序相同(对称操作)。

在文件 endian.hpp188 行定义.

引用了 host_to_le() , 以及 is_integral_v.

◆ network_to_host()

template<typename T>
constexpr T endian::network_to_host ( T value)
inlinestaticconstexprnoexcept

网络序转主机序

模板参数
T整数类型
参数
value网络序的值
返回
主机序的值

网络序转主机序与主机序转网络序相同(对称操作)。

在文件 endian.hpp160 行定义.

引用了 host_to_network() , 以及 is_integral_v.

◆ read_be16()

constexpr uint16_t endian::read_be16 ( const byte_t * data)
inlinestaticconstexprnoexcept

读取16位大端整数

参数
data字节数组指针
返回
读取的16位整数

在文件 endian.hpp271 行定义.

引用了 data().

◆ read_be32()

constexpr uint32_t endian::read_be32 ( const byte_t * data)
inlinestaticconstexprnoexcept

读取32位大端整数

参数
data字节数组指针
返回
读取的32位整数

在文件 endian.hpp280 行定义.

引用了 data().

◆ read_be64()

constexpr uint64_t endian::read_be64 ( const byte_t * data)
inlinestaticconstexprnoexcept

读取64位大端整数

参数
data字节数组指针
返回
读取的64位整数

在文件 endian.hpp290 行定义.

引用了 data().

◆ read_le16()

constexpr uint16_t endian::read_le16 ( const byte_t * data)
inlinestaticconstexprnoexcept

读取16位小端整数

参数
data字节数组指针
返回
读取的16位整数

在文件 endian.hpp240 行定义.

引用了 data().

◆ read_le32()

constexpr uint32_t endian::read_le32 ( const byte_t * data)
inlinestaticconstexprnoexcept

读取32位小端整数

参数
data字节数组指针
返回
读取的32位整数

在文件 endian.hpp249 行定义.

引用了 data().

◆ read_le64()

constexpr uint64_t endian::read_le64 ( const byte_t * data)
inlinestaticconstexprnoexcept

读取64位小端整数

参数
data字节数组指针
返回
读取的64位整数

在文件 endian.hpp259 行定义.

引用了 data().

◆ swap_endian()

template<typename T>
constexpr T endian::swap_endian ( T value)
inlinestaticconstexprnoexcept

字节序反转(不区分端序)

模板参数
T整数类型
参数
value输入值
返回
字节序反转后的值

强制反转字节序,不关心当前平台字节序。

在文件 endian.hpp230 行定义.

引用了 is_integral_v.

◆ write_be16()

constexpr void endian::write_be16 ( byte_t * dest,
uint16_t value )
inlinestaticconstexprnoexcept

写入16位大端整数

参数
dest目标字节数组指针
value要写入的值

在文件 endian.hpp334 行定义.

◆ write_be32()

constexpr void endian::write_be32 ( byte_t * dest,
uint32_t value )
inlinestaticconstexprnoexcept

写入32位大端整数

参数
dest目标字节数组指针
value要写入的值

在文件 endian.hpp344 行定义.

◆ write_be64()

constexpr void endian::write_be64 ( byte_t * dest,
uint64_t value )
inlinestaticconstexprnoexcept

写入64位大端整数

参数
dest目标字节数组指针
value要写入的值

在文件 endian.hpp355 行定义.

◆ write_le16()

constexpr void endian::write_le16 ( byte_t * dest,
uint16_t value )
inlinestaticconstexprnoexcept

写入16位小端整数

参数
dest目标字节数组指针
value要写入的值

在文件 endian.hpp302 行定义.

◆ write_le32()

constexpr void endian::write_le32 ( byte_t * dest,
uint32_t value )
inlinestaticconstexprnoexcept

写入32位小端整数

参数
dest目标字节数组指针
value要写入的值

在文件 endian.hpp312 行定义.

◆ write_le64()

constexpr void endian::write_le64 ( byte_t * dest,
uint64_t value )
inlinestaticconstexprnoexcept

写入64位小端整数

参数
dest目标字节数组指针
value要写入的值

在文件 endian.hpp323 行定义.


该结构体的文档由以下文件生成: