Conversor de endianness

Bytes de origem (memória)

↓ ordem de bytes convertida ↓

Bytes de resultado (memória)

# Hex de entrada Hex de saída Sem sinal Com sinal Binário

Conversor de endianness

Isto é um conversor de endianness: troca a ordem dos bytes de um valor hex multi-byte na memória. Ordem dos bytes de um valor multi-byte. 0x12345678: big-endian 12 34 56 78, little-endian 78 56 34 12, PDP 34 12 78 56. Exemplo: 32 bits, BE→LE. Duas palavras AA BB CC DD 11 22 33 44 → DD CC BB AA 44 33 22 11; inverter tudo → 44 33 22 11 DD CC BB AA.

Como usar

  1. Cole hex. Comprimento múltiplo de 2/4/8 (exceto inverter tudo).
  2. 16/32/64 bits. Cada palavra à parte.
  3. Origem/destino: big-endian, little-endian ou PDP. Trocar ⇄ reintroduz o resultado.
  4. Células, tabela, __builtin_bswap.

Memória e valores

A esquerda é o endereço 0. Little-endian põe o LSB no endereço mais baixo. uint8_t não tem endianness.

Ordem de rede e C

TCP/IP é big-endian (RFC 1700). Em anfitrião LE: htons/htonl. Floats com memcpy.

PDP / middle-endian

O PDP-11 guarda 32 bits como 34 12 78 56.

Perguntas frequentes

  • 3 bytes com 32 bits? Precisa de um múltiplo de 4.
  • Inverter tudo = troca por palavra? Não com várias palavras.
  • Floats? Com IEEE 754.

Ferramentas relacionadas

Floats: IEEE 754. Dump: Hex Dump. Inteiros: Hexadecimal para Decimal.

Valores inteiros? Hexadecimal para Decimal →