En Google, luchamos por la equidad racial de la comunidad negra. Más información

nl::Weave::Codificación::BigEndian

Este espacio de nombres proporciona funciones para lo siguiente:

Resumen

  • Realizar un reordenamiento de bytes relativo al sistema host por el valor de los enormes valores de bytes bytes ordenados para tipos de 16, 32 y 64 bits.
  • Accede de forma segura y sencilla a la memoria con asignaciones eficientes, a ubicaciones de memoria no alineadas, con o sin reordenamiento de bytes, para cantidades de 8-16, 36 y 64 bits ordenadas en bytes, con y sin administración de punteros.

En los sistemas host host grandes, no se realizará un reordenamiento de bytes real. En otros sistemas, el reordenamiento de bytes se realiza según corresponda.

Functions

Get16(const uint8_t *p)
uint16_t
Realiza una lectura de memoria potencialmente no alineada del gran byte endian ordenado de 16 bits desde la dirección del puntero especificado, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino.
Get32(const uint8_t *p)
uint32_t
Realiza una lectura de memoria potencialmente alineada, potencialmente no alineada del valor del byte endian grande de 32 bits de la dirección del puntero especificado, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino.
Get64(const uint8_t *p)
uint64_t
Realiza una lectura de memoria potencialmente sin alinear del posible byte endian de 64 bits de la dirección del puntero especificado, reordena bytes, según sea necesario, a fin de que el sistema de destino coloque el valor en el orden de bytes del sistema de destino.
HostSwap16(uint16_t v)
uint16_t
Esto, de forma condicional, realiza, según sea necesario para el sistema de destino, un intercambio de orden de bytes por el valor del valor especificado de 16 bits, que se supone se encuentra en el orden de bytes endian grandes al sistema objetivo (es decir,
HostSwap32(uint32_t v)
uint32_t
Esto, de forma condicional, realiza, según sea necesario para el sistema de destino, un intercambio de orden de bytes por el valor del valor especificado de 32 bits, que se supone que se realiza en orden de bytes enormes para el sistema de destino (es decir,
HostSwap64(uint64_t v)
uint64_t
Esto realiza condicionalmente, según sea necesario para el sistema de destino, un intercambio de orden de bytes por el valor del valor especificado de 64 bits, que se supone que están en un orden de bytes endian grandes para el sistema de destino (es decir,
Put16(uint8_t *p, uint16_t v)
void
Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 16 bits a la dirección del puntero especificada, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes big endian.
Put32(uint8_t *p, uint32_t v)
void
Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 32 bits a la dirección del puntero especificada, reordena los bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes big endian.
Put64(uint8_t *p, uint64_t v)
void
Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 64 bits a la dirección del puntero especificada, reordena los bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes big endian.
Read16(uint8_t *& p)
uint16_t
Realiza una lectura de memoria potencialmente alineada, potencialmente no alineada del gran byte endian de 16 bits de la dirección del puntero especificado, realiza el reordenamiento de bytes según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 16 bits (2 bytes).
Read16(const uint8_t *& p)
uint16_t
Realiza una lectura de memoria potencialmente alineada, potencialmente no alineada del gran byte endian de 16 bits de la dirección del puntero especificado, realiza el reordenamiento de bytes según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 16 bits (2 bytes).
Read32(uint8_t *& p)
uint32_t
Realiza una lectura de memoria potencialmente alineada, potencialmente desalineada, del gran byte endian ordenado a 32 bits de la dirección del puntero especificada, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 32 bits (4 bytes).
Read32(const uint8_t *& p)
uint32_t
Realiza una lectura de memoria potencialmente alineada, potencialmente desalineada, del gran byte endian ordenado a 32 bits de la dirección del puntero especificada, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 32 bits (4 bytes).
Read64(uint8_t *& p)
uint64_t
Realiza una lectura de memoria potencialmente alineada, potencialmente no alineada del gran byte endian ordenado a 64 bits de la dirección del puntero especificada, realiza un reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 64 bits (8 bytes).
Read64(const uint8_t *& p)
uint64_t
Realiza una lectura de memoria potencialmente alineada, potencialmente no alineada del gran byte endian ordenado a 64 bits de la dirección del puntero especificada, realiza un reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 64 bits (8 bytes).
Write16(uint8_t *& p, uint16_t v)
void
Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 16 bits a la dirección del puntero especificada, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes big endian.
Write32(uint8_t *& p, uint32_t v)
void
Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 32 bits a la dirección del puntero especificada, reordena los bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes big endian.
Write64(uint8_t *& p, uint64_t v)
void
Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 64 bits a la dirección del puntero especificada, reordena los bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes big endian.

Functions

Get16

uint16_t Get16(
  const uint8_t *p
)

Realiza una lectura de memoria potencialmente no alineada del gran byte endian ordenado de 16 bits desde la dirección del puntero especificado, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino.

Detalles
Parámetros
[in] p
Una dirección de puntero, posiblemente desalineada, para leer el valor de enorme byte ordenado de 16 bits.
Qué muestra
El valor de 16 bits en la dirección del puntero especificado, si es necesario, bytes reordenados.

Get32

uint32_t Get32(
  const uint8_t *p
)

Realiza una lectura de memoria potencialmente alineada, potencialmente no alineada del valor del byte endian grande de 32 bits de la dirección del puntero especificado, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino.

Detalles
Parámetros
[in] p
Una dirección de puntero, posiblemente desalineada, para leer el valor del ordenamiento de enormes bytes de 32 bits.
Qué muestra
El valor de 32 bits en la dirección del puntero especificado, si es necesario, bytes reordenados.

Get64

uint64_t Get64(
  const uint8_t *p
)

Realiza una lectura de memoria potencialmente sin alinear del posible byte endian de 64 bits de la dirección del puntero especificado, reordena bytes, según sea necesario, a fin de que el sistema de destino coloque el valor en el orden de bytes del sistema de destino.

Detalles
Parámetros
[in] p
Una dirección de puntero, posiblemente desalineada, para leer el valor de 64 bits de bytes finales ordenados.
Qué muestra
El valor de 64 bits en la dirección del puntero especificado, si es necesario, bytes reordenados.

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

Esto, de forma condicional, realiza, según sea necesario para el sistema de destino, un intercambio de orden de bytes por el valor del valor especificado de 16 bits, que se supone se encuentra en el orden de bytes endian grandes al sistema objetivo (es decir,

host) de orden de bytes.

En consecuencia, en los sistemas objetivo de bits finitos, esta es una no-op, y en los sistemas objetivo grandes, realiza un reordenamiento.

Detalles
Parámetros
[in] v
Valor de 16 bits que se intercambiará por orden de bytes.
Qué muestra
El valor de entrada, si es necesario, se intercambia el orden de bytes.

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

Esto, de forma condicional, realiza, según sea necesario para el sistema de destino, un intercambio de orden de bytes por el valor del valor especificado de 32 bits, que se supone que se realiza en orden de bytes enormes para el sistema de destino (es decir,

host) de orden de bytes.

En consecuencia, en los sistemas objetivo de bits finitos, esta es una no-op, y en los sistemas objetivo grandes, realiza un reordenamiento.

Detalles
Parámetros
[in] v
Valor de 32 bits que se intercambiará por orden de bytes.
Qué muestra
El valor de entrada, si es necesario, se intercambia el orden de bytes.

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

Esto realiza condicionalmente, según sea necesario para el sistema de destino, un intercambio de orden de bytes por el valor del valor especificado de 64 bits, que se supone que están en un orden de bytes endian grandes para el sistema de destino (es decir,

host) de orden de bytes.

En consecuencia, en los sistemas objetivo de bits finitos, esta es una no-op, y en los sistemas objetivo grandes, realiza un reordenamiento.

Detalles
Parámetros
[in] v
El valor de 64 bits que se intercambiará por orden de bytes.
Qué muestra
El valor de entrada, si es necesario, se intercambia el orden de bytes.

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 16 bits a la dirección del puntero especificada, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes big endian.

Detalles
Parámetros
[in] p
Una dirección del puntero, posiblemente no alineada, para escribir el byte de sistema de destino ordenado de 16 bits en orden de bytes grande.
[in] v
El valor de 16 bits para escribir, de ser necesario, se intercambia el orden de los bytes.

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 32 bits a la dirección del puntero especificada, reordena los bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes big endian.

Detalles
Parámetros
[in] p
Una dirección del puntero, posiblemente no alineada, para escribir el byte de sistema de destino ordenado de 32 bits en orden grande de bytes endian.
[in] v
El valor de 32 bits para escribir, si es necesario, se cambia el orden de bytes.

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 64 bits a la dirección del puntero especificada, reordena los bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes big endian.

Detalles
Parámetros
[in] p
Una dirección del puntero, posiblemente no alineada, para escribir el byte de sistema de destino ordenado de 64 bits en orden de bytes endian.
[in] v
El valor de 64 bits que se escribe, de ser necesario, se cambia el orden de bytes.

Lectura16

uint16_t Read16(
  uint8_t *& p
)

Realiza una lectura de memoria potencialmente alineada, potencialmente no alineada del gran byte endian de 16 bits de la dirección del puntero especificado, realiza el reordenamiento de bytes según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 16 bits (2 bytes).

Detalles
Parámetros
[in,out] p
Es una referencia a una dirección del puntero, posiblemente desalineada, para leer el valor del enorme byte final de 16 bits y, luego, aumentarlo por 16 bits (2 bytes).
Qué muestra
El valor de 16 bits en la dirección del puntero especificado, si es necesario, se cambia el orden de bytes.

Lectura16

uint16_t Read16(
  const uint8_t *& p
)

Realiza una lectura de memoria potencialmente alineada, potencialmente no alineada del gran byte endian de 16 bits de la dirección del puntero especificado, realiza el reordenamiento de bytes según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 16 bits (2 bytes).

Detalles
Parámetros
[in,out] p
Es una referencia a una dirección de puntero constante, posiblemente desalineada, para leer el valor de byte grande de 16 bits ordenado a partir de 16 bits (2 bytes) y, luego, aumentarlo.
Qué muestra
El valor de 16 bits en la dirección del puntero especificado, si es necesario, se cambia el orden de bytes.

Lectura 32

uint32_t Read32(
  uint8_t *& p
)

Realiza una lectura de memoria potencialmente alineada, potencialmente desalineada, del gran byte endian ordenado a 32 bits de la dirección del puntero especificada, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 32 bits (4 bytes).

Detalles
Parámetros
[in,out] p
Es una referencia a una dirección del puntero, posiblemente desalineada, para leer el valor de byte grande de 32 bits ordenado a partir de 42 bits (4 bytes) y, luego, aumentarlo.
Qué muestra
El valor de 32 bits en la dirección del puntero especificado, si es necesario, se cambia el orden de bytes.

Lectura 32

uint32_t Read32(
  const uint8_t *& p
)

Realiza una lectura de memoria potencialmente alineada, potencialmente desalineada, del gran byte endian ordenado a 32 bits de la dirección del puntero especificada, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 32 bits (4 bytes).

Detalles
Parámetros
[in,out] p
Es una referencia a una dirección de puntero constante, posiblemente desalineada, para leer el valor de byte grande de 32 bits ordenado a partir de 42 bits (4 bytes) y, luego, aumentarlo.
Qué muestra
El valor de 32 bits en la dirección del puntero especificado, si es necesario, se cambia el orden de bytes.

Lectura64

uint64_t Read64(
  uint8_t *& p
)

Realiza una lectura de memoria potencialmente alineada, potencialmente no alineada del gran byte endian ordenado a 64 bits de la dirección del puntero especificada, realiza un reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 64 bits (8 bytes).

Detalles
Parámetros
[in,out] p
Es una referencia a una dirección del puntero, posiblemente no alineada, para leer el valor de 64 bits en el formato de bytes final y aumentarlo en 64 bits (8 bytes).
Qué muestra
El valor de 64 bits en la dirección del puntero especificado, si es necesario, se intercambia el orden de bytes.

Lectura64

uint64_t Read64(
  const uint8_t *& p
)

Realiza una lectura de memoria potencialmente alineada, potencialmente no alineada del gran byte endian ordenado a 64 bits de la dirección del puntero especificada, realiza un reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 64 bits (8 bytes).

Detalles
Parámetros
[in,out] p
Es una referencia a una dirección de puntero constante, que posiblemente esté desalineada, para leer el valor de 64 bits ordenado en bytes de 64 bits y, luego, aumentarlo en 64 bits (8 bytes).
Qué muestra
El valor de 64 bits en la dirección del puntero especificado, si es necesario, se intercambia el orden de bytes.

Escritura16

void Write16(
  uint8_t *& p,
  uint16_t v
)

Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 16 bits a la dirección del puntero especificada, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes big endian.

Detalles
Parámetros
[in] p
Es una referencia a una dirección del puntero, posiblemente no alineada, para escribir el byte de sistema de destino ordenado de 16 bits en orden grande de bytes endian y, luego, aumentar de 16 bits (2 bytes).
[in] v
El valor de 16 bits para escribir, de ser necesario, se intercambia el orden de los bytes.

Escritura 32

void Write32(
  uint8_t *& p,
  uint32_t v
)

Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 32 bits a la dirección del puntero especificada, reordena los bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes big endian.

Detalles
Parámetros
[in] p
Es una referencia a una dirección del puntero, posiblemente no alineada, para escribir el byte de sistema de destino ordenado de 32 bits en orden de bytes final enorme y, luego, aumentar de 32 bits (4 bytes).
[in] v
El valor de 32 bits para escribir, si es necesario, se cambia el orden de bytes.

Escritura 64

void Write64(
  uint8_t *& p,
  uint64_t v
)

Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 64 bits a la dirección del puntero especificada, reordena los bytes según sea necesario para que el sistema de destino coloque el valor en el orden de bytes big endian.

Detalles
Parámetros
[in] p
Es una referencia a una dirección del puntero, posiblemente no alineada, para escribir el byte de sistema de destino ordenado para un valor de 64 bits en el orden de bytes big endian y, luego, aumentarlo por 64 bits (8 bytes).
[in] v
El valor de 64 bits que se escribe, de ser necesario, se cambia el orden de bytes.