nl::Weave::Encoding::BigEndian

此命名空间提供以下函数:

摘要

  • 按 16 位、32 位和 64 位类型的大端字节序值执行字节重新排序(相对于主机系统)。
  • 安全执行简单、高效的内存映射访问,可能是对未对齐内存位置的访问(无论是否进行字节重新排序),到 8 位、16 位、32 位和 64 位大端序字节排序数量(无论是否使用指针管理)。

在大端主机系统中,不会发生实际的字节重新排序。在其他系统上,字节重新排序会视情况进行。

函数

Get16(const uint8_t *p)
uint16_t
对从指定指针地址中按大端序字节排序的 16 位值执行可能未对齐的内存读取,并根据需要执行字节重新排序,以便目标系统将值按目标系统字节排序。
Get32(const uint8_t *p)
uint32_t
对从指定指针地址中按大端序字节排序的 32 位值执行可能未对齐的内存读取,并根据需要执行字节重新排序,以便目标系统将值按目标系统字节排序。
Get64(const uint8_t *p)
uint64_t
对从指定指针地址中按大端序字节排序的 64 位值执行可能未对齐的内存读取,并根据需要执行字节重新排序,以便目标系统将值按目标系统字节排序。
HostSwap16(uint16_t v)
uint16_t
如果目标系统需要,该操作有条件地按指定 16 位值的值执行字节顺序交换,并假定对目标系统采用大端字节顺序(即
HostSwap32(uint32_t v)
uint32_t
如果目标系统需要,该操作有条件地按指定 32 位值的值执行字节顺序交换,并假定对目标系统采用大端字节顺序(即
HostSwap64(uint64_t v)
uint64_t
如果目标系统需要,该操作有条件地按指定 64 位值的值执行字节顺序交换,并假定对目标系统采用大端字节顺序(即
Put16(uint8_t *p, uint16_t v)
void
对指定的指针地址执行目标系统字节排序的 16 位值(可能未对齐)的内存写入,并根据需要执行字节重新排序,以便目标系统将值按大端字节序排序。
Put32(uint8_t *p, uint32_t v)
void
对指定的指针地址执行目标系统字节排序的 32 位值(可能未对齐)的内存写入,并根据需要执行字节重新排序,以便目标系统将值按大端字节序排序。
Put64(uint8_t *p, uint64_t v)
void
对指定的指针地址执行目标系统字节排序(64 位)值的内存写入(可能未对齐),并根据需要执行字节重新排序,以便目标系统将值按大端字节序排序。
Read16(uint8_t *& p)
uint16_t
对从指定指针地址中按 16 位排序的大端字节值执行可能未对齐的内存读取,根据需要执行字节重新排序,以便目标系统将该值放入目标系统字节排序,并将指针增加 16 位(2 字节)。
Read16(const uint8_t *& p)
uint16_t
对从指定指针地址中按 16 位排序的大端字节值执行可能未对齐的内存读取,根据需要执行字节重新排序,以便目标系统将该值放入目标系统字节排序,并将指针增加 16 位(2 字节)。
Read32(uint8_t *& p)
uint32_t
对来自指定指针地址的大端序字节排序(32 位)执行可能未对齐的内存读取,根据需要执行字节重新排序,以便目标系统将该值放入目标系统字节排序,并将指针增加 32 位(4 字节)。
Read32(const uint8_t *& p)
uint32_t
对来自指定指针地址的大端序字节排序(32 位)执行可能未对齐的内存读取,根据需要执行字节重新排序,以便目标系统将该值放入目标系统字节排序,并将指针增加 32 位(4 字节)。
Read64(uint8_t *& p)
uint64_t
对从指定指针地址中按 64 位排序的大端字节值执行(可能未对齐)内存读取,根据需要执行字节重新排序,以便目标系统将该值放入目标系统字节排序,并将指针增加 64 位(8 字节)。
Read64(const uint8_t *& p)
uint64_t
对从指定指针地址中按 64 位排序的大端字节值执行(可能未对齐)内存读取,根据需要执行字节重新排序,以便目标系统将该值放入目标系统字节排序,并将指针增加 64 位(8 字节)。
Write16(uint8_t *& p, uint16_t v)
void
对指定的指针地址执行目标系统字节排序的 16 位值(可能未对齐)的内存写入,并根据需要执行字节重新排序,以便目标系统将值按大端字节序排序。
Write32(uint8_t *& p, uint32_t v)
void
对指定的指针地址执行目标系统字节排序的 32 位值(可能未对齐)的内存写入,并根据需要执行字节重新排序,以便目标系统将值按大端字节序排序。
Write64(uint8_t *& p, uint64_t v)
void
对指定的指针地址执行目标系统字节排序(64 位)值的内存写入(可能未对齐),并根据需要执行字节重新排序,以便目标系统将值按大端字节序排序。

函数

Get16

uint16_t Get16(
  const uint8_t *p
)

对从指定指针地址中按大端序字节排序的 16 位值执行可能未对齐的内存读取,并根据需要执行字节重新排序,以便目标系统将值按目标系统字节排序。

详细信息
参数
[in] p
一个指针地址,可能未对齐,用于读取其中 16 位大端序字节排序的值。
返回值
指定指针地址处的 16 位值(如有必要)字节重新排序。

Get32

uint32_t Get32(
  const uint8_t *p
)

对从指定指针地址中按大端序字节排序的 32 位值执行可能未对齐的内存读取,并根据需要执行字节重新排序,以便目标系统将值按目标系统字节排序。

详细信息
参数
[in] p
可能未对齐的指针地址,用于读取 32 位大端序字节排序值。
返回值
指定指针地址处的 32 位值(如有必要)字节重新排序。

Get64

uint64_t Get64(
  const uint8_t *p
)

对从指定指针地址中按大端序字节排序的 64 位值执行可能未对齐的内存读取,并根据需要执行字节重新排序,以便目标系统将值按目标系统字节排序。

详细信息
参数
[in] p
一个指针地址,可能未对齐,用于读取其中 64 位大端序字节排序的值。
返回值
指定指针地址处的 64 位值(如有必要)字节重新排序。

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

如果目标系统需要,该操作有条件地按指定 16 位值的值执行字节顺序交换,并假定对目标系统采用大端字节顺序(即

主机)字节排序。

因此,在位端目标系统中,这是一个空操作;在大端目标系统中,这会执行重新排序。

详细信息
参数
[in] v
要交换的字节顺序的 16 位值。
返回值
输入值(如有必要),交换字节顺序。

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

如果目标系统需要,该操作有条件地按指定 32 位值的值执行字节顺序交换,并假定对目标系统采用大端字节顺序(即

主机)字节排序。

因此,在位端目标系统中,这是一个空操作;在大端目标系统中,这会执行重新排序。

详细信息
参数
[in] v
要交换的字节顺序的 32 位值。
返回值
输入值(如有必要),交换字节顺序。

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

如果目标系统需要,该操作有条件地按指定 64 位值的值执行字节顺序交换,并假定对目标系统采用大端字节顺序(即

主机)字节排序。

因此,在位端目标系统中,这是一个空操作;在大端目标系统中,这会执行重新排序。

详细信息
参数
[in] v
要交换字节顺序的 64 位值。
返回值
输入值(如有必要),交换字节顺序。

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

对指定的指针地址执行目标系统字节排序的 16 位值(可能未对齐)的内存写入,并根据需要执行字节重新排序,以便目标系统将值按大端字节序排序。

详细信息
参数
[in] p
一个指针地址,可能未对齐,用于以大端字节序字节顺序写入目标系统字节排序的 16 位值。
[in] v
要写入的 16 位值(如有必要)。交换字节顺序。

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

对指定的指针地址执行目标系统字节排序的 32 位值(可能未对齐)的内存写入,并根据需要执行字节重新排序,以便目标系统将值按大端字节序排序。

详细信息
参数
[in] p
一个指针地址,可能未对齐,用于以大端字节序字节顺序写入目标系统字节排序的 32 位值。
[in] v
要写入的 32 位值(如有必要),交换字节顺序。

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

对指定的指针地址执行目标系统字节排序(64 位)值的内存写入(可能未对齐),并根据需要执行字节重新排序,以便目标系统将值按大端字节序排序。

详细信息
参数
[in] p
一个指针地址,可能未对齐,用于以大端字节序字节顺序写入目标系统字节排序的 64 位值。
[in] v
要写入的 64 位值(如有必要)。交换字节顺序。

Read16

uint16_t Read16(
  uint8_t *& p
)

对从指定指针地址中按 16 位排序的大端字节值执行可能未对齐的内存读取,根据需要执行字节重新排序,以便目标系统将该值放入目标系统字节排序,并将指针增加 16 位(2 字节)。

详细信息
参数
[in,out] p
对指针地址的引用(可能未对齐),用于从 16 位大端序字节顺序值开始读取,然后以 16 位(2 字节)递增。
返回值
指定指针地址处的 16 位值(如有必要)交换字节顺序。

Read16

uint16_t Read16(
  const uint8_t *& p
)

对从指定指针地址中按 16 位排序的大端字节值执行可能未对齐的内存读取,根据需要执行字节重新排序,以便目标系统将该值放入目标系统字节排序,并将指针增加 16 位(2 字节)。

详细信息
参数
[in,out] p
对常量指针地址的引用(可能未对齐),用于从 16 位大端序字节排序值中读取 16 位大端序字节顺序值,然后以 16 位(2 字节)递增。
返回值
指定指针地址处的 16 位值(如有必要)交换字节顺序。

Read32

uint32_t Read32(
  uint8_t *& p
)

对来自指定指针地址的大端序字节排序(32 位)执行可能未对齐的内存读取,根据需要执行字节重新排序,以便目标系统将该值放入目标系统字节排序,并将指针增加 32 位(4 字节)。

详细信息
参数
[in,out] p
对指针地址的引用(可能未对齐),用于从 32 位大端序字节顺序值开始读取,然后以 32 位(4 字节)递增。
返回值
指定指针地址处的 32 位值(如有必要)交换字节顺序。

Read32

uint32_t Read32(
  const uint8_t *& p
)

对来自指定指针地址的大端序字节排序(32 位)执行可能未对齐的内存读取,根据需要执行字节重新排序,以便目标系统将该值放入目标系统字节排序,并将指针增加 32 位(4 字节)。

详细信息
参数
[in,out] p
对常量指针地址的引用(可能未对齐),用于从 32 位大端序字节排序值中读取 32 位大端序字节顺序值,然后以 32 位(4 字节)递增。
返回值
指定指针地址处的 32 位值(如有必要)交换字节顺序。

Read64

uint64_t Read64(
  uint8_t *& p
)

对从指定指针地址中按 64 位排序的大端字节值执行(可能未对齐)内存读取,根据需要执行字节重新排序,以便目标系统将该值放入目标系统字节排序,并将指针增加 64 位(8 字节)。

详细信息
参数
[in,out] p
对指针地址的引用(可能未对齐),用于从 64 位大端序字节顺序值开始读取,然后以 64 位(8 字节)递增。
返回值
指定指针地址处的 64 位值(如有必要)交换字节顺序。

Read64

uint64_t Read64(
  const uint8_t *& p
)

对从指定指针地址中按 64 位排序的大端字节值执行(可能未对齐)内存读取,根据需要执行字节重新排序,以便目标系统将该值放入目标系统字节排序,并将指针增加 64 位(8 字节)。

详细信息
参数
[in,out] p
对常量指针地址的引用(可能未对齐),用于从 64 位大端序字节排序值中读取 64 位大端序字节顺序值,然后以 64 位(8 字节)递增。
返回值
指定指针地址处的 64 位值(如有必要)交换字节顺序。

Write16

void Write16(
  uint8_t *& p,
  uint16_t v
)

对指定的指针地址执行目标系统字节排序的 16 位值(可能未对齐)的内存写入,并根据需要执行字节重新排序,以便目标系统将值按大端字节序排序。

详细信息
参数
[in] p
对指针地址的引用(可能未对齐),用于以大端字节顺序写入目标系统字节排序的 16 位值,然后以 16 位(2 字节)递增。
[in] v
要写入的 16 位值(如有必要)。交换字节顺序。

Write32

void Write32(
  uint8_t *& p,
  uint32_t v
)

对指定的指针地址执行目标系统字节排序的 32 位值(可能未对齐)的内存写入,并根据需要执行字节重新排序,以便目标系统将值按大端字节序排序。

详细信息
参数
[in] p
对指针地址的引用(可能未对齐),用于以大端字节顺序写入目标系统字节排序的 32 位值,然后以 32 位(4 字节)递增。
[in] v
要写入的 32 位值(如有必要),交换字节顺序。

Write64

void Write64(
  uint8_t *& p,
  uint64_t v
)

对指定的指针地址执行目标系统字节排序(64 位)值的内存写入(可能未对齐),并根据需要执行字节重新排序,以便目标系统将值按大端字节序排序。

详细信息
参数
[in] p
对指针地址的引用(可能未对齐),用于以大端字节顺序写入目标系统字节排序的 64 位值,然后以 64 位(8 字节)递增。
[in] v
要写入的 64 位值(如有必要)。交换字节顺序。