nl::Weave::Encoding::BigEndian

Không gian tên này cung cấp các hàm cho:

Tóm tắt

  • Thực hiện sắp xếp lại byte, tương ứng với hệ thống máy chủ, theo giá trị của các giá trị được sắp xếp theo thứ tự byte lớn cho các loại 16, 32- và 64 bit.
  • Thực hiện an toàn các truy cập bộ nhớ được ánh xạ đơn giản, hiệu quả, có thể đến các vị trí bộ nhớ không căn chỉnh, có hoặc không có sắp xếp lại byte, đến các số lượng byte cuối lớn 8, 16, 32 và 64 bit, cả có và không có quản lý con trỏ.

Trên các hệ thống máy chủ nội bộ lớn, không có việc sắp xếp lại byte thực tế. Trên các hệ thống khác, việc sắp xếp lại byte được thực hiện khi phù hợp.

Hàm

Get16(const uint8_t *p)
uint16_t
Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 16 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích.
Get32(const uint8_t *p)
uint32_t
Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 32 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích.
Get64(const uint8_t *p)
uint64_t
Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 64 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích.
HostSwap16(uint16_t v)
uint16_t
Điều này thực hiện một cách có điều kiện, khi cần cho hệ thống đích, hoán đổi thứ tự byte theo giá trị của giá trị 16 bit được chỉ định, được giả định là có thứ tự byte cuối lớn đối với hệ thống đích (tức là
HostSwap32(uint32_t v)
uint32_t
Việc này sẽ thực hiện theo điều kiện, nếu cần cho hệ thống đích, hoán đổi thứ tự byte theo giá trị của giá trị 32 bit được chỉ định, được giả định là có thứ tự byte cuối lớn đối với hệ thống đích (tức là
HostSwap64(uint64_t v)
uint64_t
Điều này thực hiện có điều kiện, khi cần cho hệ thống đích, hoán đổi thứ tự byte theo giá trị của giá trị 64 bit được chỉ định, được giả định là theo thứ tự byte cuối lớn đối với hệ thống đích (tức là
Put16(uint8_t *p, uint16_t v)
void
Thực hiện việc ghi bộ nhớ có thể không được căn chỉnh của byte hệ thống đích có thứ tự giá trị 16 bit vào địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte cuối lớn.
Put32(uint8_t *p, uint32_t v)
void
Thực hiện việc ghi bộ nhớ có thể không được căn chỉnh của byte hệ thống đích có thứ tự giá trị 32 bit vào địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte cuối lớn.
Put64(uint8_t *p, uint64_t v)
void
Thực hiện việc ghi bộ nhớ có thể không được căn chỉnh của byte hệ thống đích có thứ tự giá trị 64 bit vào địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte cuối lớn.
Read16(uint8_t *& p)
uint16_t
Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 16 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích và tăng con trỏ 16 bit (2 byte).
Read16(const uint8_t *& p)
uint16_t
Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 16 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích và tăng con trỏ 16 bit (2 byte).
Read32(uint8_t *& p)
uint32_t
Thực hiện việc đọc bộ nhớ có khả năng không được căn chỉnh của byte endian lớn có thứ tự 32 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích và tăng con trỏ 32 bit (4 byte).
Read32(const uint8_t *& p)
uint32_t
Thực hiện việc đọc bộ nhớ có khả năng không được căn chỉnh của byte endian lớn có thứ tự 32 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích và tăng con trỏ 32 bit (4 byte).
Read64(uint8_t *& p)
uint64_t
Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 64 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích và tăng con trỏ 64 bit (8 byte).
Read64(const uint8_t *& p)
uint64_t
Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 64 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích và tăng con trỏ 64 bit (8 byte).
Write16(uint8_t *& p, uint16_t v)
void
Thực hiện việc ghi bộ nhớ có thể không được căn chỉnh của byte hệ thống đích có thứ tự giá trị 16 bit vào địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte cuối lớn.
Write32(uint8_t *& p, uint32_t v)
void
Thực hiện việc ghi bộ nhớ có thể không được căn chỉnh của byte hệ thống đích có thứ tự giá trị 32 bit vào địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte cuối lớn.
Write64(uint8_t *& p, uint64_t v)
void
Thực hiện việc ghi bộ nhớ có thể không được căn chỉnh của byte hệ thống đích có thứ tự giá trị 64 bit vào địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte cuối lớn.

Hàm

Get16

uint16_t Get16(
  const uint8_t *p
)

Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 16 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích.

Thông tin chi tiết
Các tham số
[in] p
Địa chỉ con trỏ, có thể không được căn chỉnh, để đọc giá trị được sắp xếp theo thứ tự byte lớn 16 bit.
Trả về
Giá trị 16 bit tại địa chỉ con trỏ được chỉ định, nếu cần, byte được sắp xếp lại.

Get32

uint32_t Get32(
  const uint8_t *p
)

Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 32 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích.

Thông tin chi tiết
Các tham số
[in] p
Địa chỉ con trỏ, có thể không được căn chỉnh, để đọc giá trị được sắp xếp theo thứ tự byte lớn 32 bit.
Trả về
Giá trị 32 bit tại địa chỉ con trỏ được chỉ định, nếu cần, byte được sắp xếp lại.

Get64

uint64_t Get64(
  const uint8_t *p
)

Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 64 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích.

Thông tin chi tiết
Các tham số
[in] p
Địa chỉ con trỏ, có thể không được căn chỉnh, để đọc giá trị được sắp xếp theo thứ tự byte lớn 64 bit.
Trả về
Giá trị 64 bit tại địa chỉ con trỏ được chỉ định, nếu cần, byte được sắp xếp lại.

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

Điều này thực hiện một cách có điều kiện, khi cần cho hệ thống đích, hoán đổi thứ tự byte theo giá trị của giá trị 16 bit được chỉ định, được giả định là có thứ tự byte cuối lớn đối với hệ thống đích (tức là

thứ tự byte).

Do đó, trên các hệ thống mục tiêu bit endian, đây là một biến đổi không hoạt động và trên các hệ thống mục tiêu endian lớn, thao tác này sẽ thực hiện việc sắp xếp lại thứ tự.

Thông tin chi tiết
Các tham số
[in] v
Giá trị 16 bit được hoán đổi thứ tự byte.
Trả về
Giá trị đầu vào (nếu cần) đã hoán đổi thứ tự byte.

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

Việc này sẽ thực hiện theo điều kiện, nếu cần cho hệ thống đích, hoán đổi thứ tự byte theo giá trị của giá trị 32 bit được chỉ định, được giả định là có thứ tự byte cuối lớn đối với hệ thống đích (tức là

thứ tự byte).

Do đó, trên các hệ thống mục tiêu bit endian, đây là một biến đổi không hoạt động và trên các hệ thống mục tiêu endian lớn, thao tác này sẽ thực hiện việc sắp xếp lại thứ tự.

Thông tin chi tiết
Các tham số
[in] v
Giá trị 32 bit được hoán đổi thứ tự byte.
Trả về
Giá trị đầu vào (nếu cần) đã hoán đổi thứ tự byte.

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

Điều này thực hiện có điều kiện, khi cần cho hệ thống đích, hoán đổi thứ tự byte theo giá trị của giá trị 64 bit được chỉ định, được giả định là theo thứ tự byte cuối lớn đối với hệ thống đích (tức là

thứ tự byte).

Do đó, trên các hệ thống mục tiêu bit endian, đây là một biến đổi không hoạt động và trên các hệ thống mục tiêu endian lớn, thao tác này sẽ thực hiện việc sắp xếp lại thứ tự.

Thông tin chi tiết
Các tham số
[in] v
Giá trị 64 bit được hoán đổi thứ tự byte.
Trả về
Giá trị đầu vào (nếu cần) đã hoán đổi thứ tự byte.

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

Thực hiện việc ghi bộ nhớ có thể không được căn chỉnh của byte hệ thống đích có thứ tự giá trị 16 bit vào địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte cuối lớn.

Thông tin chi tiết
Các tham số
[in] p
Địa chỉ con trỏ, có thể không được căn chỉnh, để ghi giá trị 16 bit của hệ thống đích có thứ tự vào theo thứ tự byte endian lớn.
[in] v
Giá trị 16 bit để ghi, nếu cần, hoán đổi thứ tự byte.

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

Thực hiện việc ghi bộ nhớ có thể không được căn chỉnh của byte hệ thống đích có thứ tự giá trị 32 bit vào địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte cuối lớn.

Thông tin chi tiết
Các tham số
[in] p
Địa chỉ con trỏ, có thể không được căn chỉnh, để ghi giá trị 32 bit có thứ tự của byte hệ thống đích vào theo thứ tự byte endian lớn.
[in] v
Giá trị 32 bit để ghi, nếu cần, hoán đổi thứ tự byte.

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

Thực hiện việc ghi bộ nhớ có thể không được căn chỉnh của byte hệ thống đích có thứ tự giá trị 64 bit vào địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte cuối lớn.

Thông tin chi tiết
Các tham số
[in] p
Địa chỉ con trỏ, có thể không được căn chỉnh, để ghi giá trị 64 bit của hệ thống đích có thứ tự vào theo thứ tự byte endian lớn.
[in] v
Giá trị 64 bit để ghi, nếu cần, hoán đổi thứ tự byte.

Read16

uint16_t Read16(
  uint8_t *& p
)

Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 16 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích và tăng con trỏ 16 bit (2 byte).

Thông tin chi tiết
Các tham số
[in,out] p
Một tham chiếu đến địa chỉ con trỏ, có thể không được căn chỉnh, để đọc giá trị được sắp xếp theo thứ tự byte lớn 16 bit từ và sau đó tăng thêm 16 bit (2 byte).
Trả về
Giá trị 16 bit tại địa chỉ con trỏ được chỉ định, nếu cần, sẽ hoán đổi thứ tự byte.

Read16

uint16_t Read16(
  const uint8_t *& p
)

Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 16 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích và tăng con trỏ 16 bit (2 byte).

Thông tin chi tiết
Các tham số
[in,out] p
Một tham chiếu đến địa chỉ con trỏ không đổi, có thể không được căn chỉnh, để đọc giá trị được sắp xếp theo byte endian lớn 16 bit từ và sau đó tăng thêm 16 bit (2 byte).
Trả về
Giá trị 16 bit tại địa chỉ con trỏ được chỉ định, nếu cần, sẽ hoán đổi thứ tự byte.

Read32

uint32_t Read32(
  uint8_t *& p
)

Thực hiện việc đọc bộ nhớ có khả năng không được căn chỉnh của byte endian lớn có thứ tự 32 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích và tăng con trỏ 32 bit (4 byte).

Thông tin chi tiết
Các tham số
[in,out] p
Một tham chiếu đến địa chỉ con trỏ, có thể không được căn chỉnh, để đọc giá trị được sắp xếp theo thứ tự byte lớn 32 bit từ và sau đó tăng thêm 32 bit (4 byte).
Trả về
Giá trị 32 bit tại địa chỉ con trỏ được chỉ định, nếu cần, sẽ hoán đổi thứ tự byte.

Read32

uint32_t Read32(
  const uint8_t *& p
)

Thực hiện việc đọc bộ nhớ có khả năng không được căn chỉnh của byte endian lớn có thứ tự 32 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích và tăng con trỏ 32 bit (4 byte).

Thông tin chi tiết
Các tham số
[in,out] p
Một tham chiếu đến địa chỉ con trỏ không đổi, có thể không được căn chỉnh, để đọc giá trị được sắp xếp theo byte endian lớn 32 bit từ và sau đó tăng thêm 32 bit (4 byte).
Trả về
Giá trị 32 bit tại địa chỉ con trỏ được chỉ định, nếu cần, sẽ hoán đổi thứ tự byte.

Read64

uint64_t Read64(
  uint8_t *& p
)

Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 64 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích và tăng con trỏ 64 bit (8 byte).

Thông tin chi tiết
Các tham số
[in,out] p
Một tham chiếu đến địa chỉ con trỏ, có thể không được căn chỉnh, để đọc giá trị được sắp xếp theo thứ tự byte lớn 64 bit từ và sau đó tăng thêm 64 bit (8 byte).
Trả về
Giá trị 64 bit tại địa chỉ con trỏ được chỉ định, nếu cần, sẽ hoán đổi thứ tự byte.

Read64

uint64_t Read64(
  const uint8_t *& p
)

Thực hiện việc đọc bộ nhớ có thể không được căn chỉnh của byte endian lớn có thứ tự 64 bit từ địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte hệ thống đích và tăng con trỏ 64 bit (8 byte).

Thông tin chi tiết
Các tham số
[in,out] p
Một tham chiếu đến địa chỉ con trỏ không đổi, có thể không được căn chỉnh, để đọc giá trị được sắp xếp theo byte endian lớn 64 bit từ và sau đó tăng thêm 64 bit (8 byte).
Trả về
Giá trị 64 bit tại địa chỉ con trỏ được chỉ định, nếu cần, sẽ hoán đổi thứ tự byte.

Write16

void Write16(
  uint8_t *& p,
  uint16_t v
)

Thực hiện việc ghi bộ nhớ có thể không được căn chỉnh của byte hệ thống đích có thứ tự giá trị 16 bit vào địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte cuối lớn.

Thông tin chi tiết
Các tham số
[in] p
Tham chiếu đến địa chỉ con trỏ, có thể không được căn chỉnh, để ghi giá trị 16 bit của hệ thống đích theo thứ tự byte endian lớn và sau đó tăng thêm 16 bit (2 byte).
[in] v
Giá trị 16 bit để ghi, nếu cần, hoán đổi thứ tự byte.

Write32

void Write32(
  uint8_t *& p,
  uint32_t v
)

Thực hiện việc ghi bộ nhớ có thể không được căn chỉnh của byte hệ thống đích có thứ tự giá trị 32 bit vào địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte cuối lớn.

Thông tin chi tiết
Các tham số
[in] p
Tham chiếu đến địa chỉ con trỏ, có thể không được căn chỉnh, để ghi giá trị 32 bit của hệ thống đích theo thứ tự byte nội bộ lớn và sau đó tăng 32 bit (4 byte).
[in] v
Giá trị 32 bit để ghi, nếu cần, hoán đổi thứ tự byte.

Write64

void Write64(
  uint8_t *& p,
  uint64_t v
)

Thực hiện việc ghi bộ nhớ có thể không được căn chỉnh của byte hệ thống đích có thứ tự giá trị 64 bit vào địa chỉ con trỏ được chỉ định, thực hiện sắp xếp lại byte, nếu cần, để hệ thống đích đặt giá trị theo thứ tự byte cuối lớn.

Thông tin chi tiết
Các tham số
[in] p
Tham chiếu đến địa chỉ con trỏ, có thể không được căn chỉnh, để ghi giá trị 64 bit của hệ thống đích theo thứ tự byte nội bộ lớn và sau đó tăng thêm 64 bit (8 byte).
[in] v
Giá trị 64 bit để ghi, nếu cần, hoán đổi thứ tự byte.