nl::Weave::Encoding::BigEndian

이 네임스페이스는 다음과 같은 함수를 제공합니다.

요약

  • 16비트, 32비트, 64비트 유형의 Big Endian 바이트 순서 값의 값을 기준으로 호스트 시스템을 기준으로 바이트 재정렬을 수행합니다.
  • 포인터 관리 여부와 관계없이 바이트 순서 변경 여부와 관계없이 8비트, 16비트, 32비트, 64비트 빅 엔디언 바이트 순서 수량에 대해 잠재적으로 정렬되지 않은 메모리 위치에 대해 단순하고 효율적인 메모리 매핑 액세스를 안전하게 수행합니다.

Big Endian 호스트 시스템에서는 실제 바이트 재정렬이 발생하지 않습니다. 다른 시스템에서는 적절하게 바이트 재정렬이 적용됩니다.

함수

Get16(const uint8_t *p)
uint16_t
지정된 포인터 주소에서 16비트로 정렬된 빅 엔디언 바이트의 정렬되지 않은 메모리 읽기를 수행하고, 필요에 따라 바이트 재정렬을 실행하여 대상 시스템이 값을 대상 시스템 바이트 순서에 배치합니다.
Get32(const uint8_t *p)
uint32_t
지정된 포인터 주소에서 빅 엔디언 바이트 순서 32비트 값의 빅 엔디언 바이트 순서 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비트로 정렬된 대상 시스템 바이트의 정렬되지 않은 메모리 쓰기를 수행하고, 필요에 따라 바이트 순서 변경을 수행하여 대상 시스템이 값을 Big Endian 바이트 순서에 넣도록 합니다.
Put32(uint8_t *p, uint32_t v)
void
지정된 포인터 주소에 32비트로 정렬된 대상 시스템 바이트의 정렬되지 않은 메모리 쓰기를 수행하고, 필요에 따라 바이트 순서 변경을 수행하여 대상 시스템이 값을 Big Endian 바이트 순서에 넣도록 합니다.
Put64(uint8_t *p, uint64_t v)
void
지정된 포인터 주소에 64비트로 정렬된 대상 시스템 바이트의 정렬되지 않은 메모리 쓰기를 수행하고, 필요에 따라 바이트 순서 변경을 수행하여 대상 시스템이 값을 Big Endian 바이트 순서로 넣도록 합니다.
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비트 값에 대한 메모리 읽기를 수행하고, 필요에 따라 대상 시스템에서 값을 대상 시스템 바이트 순서 지정에 넣고 포인터를 32비트 (4바이트)씩 증분하도록 합니다.
Read32(const uint8_t *& p)
uint32_t
지정된 포인터 주소에서 빅 엔디언 바이트로 정렬된 32비트 값의 빅 엔디언 바이트 순서 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비트로 정렬된 대상 시스템 바이트의 정렬되지 않은 메모리 쓰기를 수행하고, 필요에 따라 바이트 순서 변경을 수행하여 대상 시스템이 값을 Big Endian 바이트 순서에 넣도록 합니다.
Write64(uint8_t *& p, uint64_t v)
void
지정된 포인터 주소에 64비트로 정렬된 대상 시스템 바이트의 정렬되지 않은 메모리 쓰기를 수행하고, 필요에 따라 바이트 순서 변경을 수행하여 대상 시스템이 값을 Big Endian 바이트 순서에 넣도록 합니다.

함수

Get16

uint16_t Get16(
  const uint8_t *p
)

지정된 포인터 주소에서 16비트로 정렬된 빅 엔디언 바이트의 정렬되지 않은 메모리 읽기를 수행하고, 필요에 따라 바이트 재정렬을 실행하여 대상 시스템이 값을 대상 시스템 바이트 순서에 배치합니다.

세부정보
매개변수
[in] p
16비트 빅 엔디언 바이트 순서 값을 읽을 수 있는 포인터 주소(정렬되지 않을 수 있음).
반환
지정된 포인터 주소의 16비트 값(필요한 경우 바이트 순서가 변경됨)

Get32

uint32_t Get32(
  const uint8_t *p
)

지정된 포인터 주소에서 빅 엔디언 바이트 순서 32비트 값의 빅 엔디언 바이트 순서 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비트 값별로 대상 시스템에 대한 빅 엔디언 바이트 순서 지정에 있는 것으로 추정되는 바이트 순서 스왑을 조건부로 수행합니다 (예:

바이트 정렬을 지원합니다.

따라서 비트 엔디언 대상 시스템에서는 이것이 노옵스(no-ops)이고 빅 엔디언 대상 시스템에서는 순서 변경을 수행합니다.

세부정보
매개변수
[in] v
바이트 순서가 스왑될 16비트 값입니다.
반환
필요한 경우 교체된 바이트 오더의 입력 값입니다.

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

이는 대상 시스템에 필요한 경우 지정된 32비트 값별로 대상 시스템에 대한 빅 엔디언 바이트 순서 지정에 있는 것으로 추정되는 바이트 순서 스왑을 조건부로 수행합니다 (예:

바이트 정렬을 지원합니다.

따라서 비트 엔디언 대상 시스템에서는 이것이 노옵스(no-ops)이고 빅 엔디언 대상 시스템에서는 순서 변경을 수행합니다.

세부정보
매개변수
[in] v
바이트 순서가 스왑될 32비트 값입니다.
반환
필요한 경우 교체된 바이트 오더의 입력 값입니다.

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

이는 대상 시스템에 필요한 경우 대상 시스템에 대한 빅 엔디언 바이트 순서 지정에 있는 것으로 추정되는 지정된 64비트 값별 바이트 순서 스왑을 조건부로 수행합니다 (예:

바이트 정렬을 지원합니다.

따라서 비트 엔디언 대상 시스템에서는 이것이 노옵스(no-ops)이고 빅 엔디언 대상 시스템에서는 순서 변경을 수행합니다.

세부정보
매개변수
[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비트로 정렬된 대상 시스템 바이트의 정렬되지 않은 메모리 쓰기를 수행하고, 필요에 따라 바이트 순서 변경을 수행하여 대상 시스템이 값을 Big Endian 바이트 순서에 넣도록 합니다.

세부정보
매개변수
[in] p
32비트 정렬된 타겟 시스템 바이트 값을 빅 엔디언 바이트 순서 지정으로 쓰기 위한 포인터 주소(정렬되지 않을 수 있음).
[in] v
필요한 경우 바이트 순서 교환을 위한 32비트 값입니다.

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

지정된 포인터 주소에 64비트로 정렬된 대상 시스템 바이트의 정렬되지 않은 메모리 쓰기를 수행하고, 필요에 따라 바이트 순서 변경을 수행하여 대상 시스템이 값을 Big Endian 바이트 순서로 넣도록 합니다.

세부정보
매개변수
[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비트 (2바이트)씩 증분합니다.
반환
지정된 포인터 주소의 16비트 값(필요한 경우 바이트 순서 스왑)

Read32

uint32_t Read32(
  uint8_t *& p
)

지정된 포인터 주소에서 빅 엔디언 바이트로 정렬된 32비트 값의 빅 엔디언 바이트 순서 32비트 값에 대한 메모리 읽기를 수행하고, 필요에 따라 대상 시스템에서 값을 대상 시스템 바이트 순서 지정에 넣고 포인터를 32비트 (4바이트)씩 증분하도록 합니다.

세부정보
매개변수
[in,out] p
32비트 빅 엔디언 바이트 순서 값을 읽은 다음 32비트 (4바이트)만큼 증분하기 위한 포인터 주소 참조로, 정렬되지 않을 수 있습니다.
반환
지정된 포인터 주소의 32비트 값(필요한 경우 바이트 순서 스왑)

Read32

uint32_t Read32(
  const uint8_t *& p
)

지정된 포인터 주소에서 빅 엔디언 바이트로 정렬된 32비트 값의 빅 엔디언 바이트 순서 32비트 값에 대한 메모리 읽기를 수행하고, 필요에 따라 대상 시스템에서 값을 대상 시스템 바이트 순서 지정에 넣고 포인터를 32비트 (4바이트)씩 증분하도록 합니다.

세부정보
매개변수
[in,out] p
정렬되지 않은 상수 포인터 주소에 대한 참조로, 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비트 (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비트로 정렬된 대상 시스템 바이트의 정렬되지 않은 메모리 쓰기를 수행하고, 필요에 따라 바이트 순서 변경을 수행하여 대상 시스템이 값을 Big Endian 바이트 순서에 넣도록 합니다.

세부정보
매개변수
[in] p
32비트 값 정렬 타겟 시스템 바이트를 빅 엔디언 바이트 순서 지정에 쓴 다음 32비트 (4바이트)씩 증분하기 위한 포인터 주소 참조로, 정렬되지 않을 수 있습니다.
[in] v
필요한 경우 바이트 순서 교환을 위한 32비트 값입니다.

Write64

void Write64(
  uint8_t *& p,
  uint64_t v
)

지정된 포인터 주소에 64비트로 정렬된 대상 시스템 바이트의 정렬되지 않은 메모리 쓰기를 수행하고, 필요에 따라 바이트 순서 변경을 수행하여 대상 시스템이 값을 Big Endian 바이트 순서에 넣도록 합니다.

세부정보
매개변수
[in] p
64비트 값 정렬 타겟 시스템 바이트를 빅 엔디언 바이트 순서 지정에 쓴 다음 64비트 (8바이트)씩 증분하기 위한 포인터 주소 참조로, 정렬되지 않을 수 있습니다.
[in] v
필요한 경우 바이트 순서 교환을 위한 64비트 값입니다.