Inicio › Herramientas para desarrolladores › Conversor de endianness

Conversor de endianness

Introduce un valor hex, una lista de bytes o un número decimal y míralo con los bytes invertidos, leído como enteros y flotantes big-endian y little-endian, además de todos los órdenes de intercambio de palabras de 16 bits que usan los dispositivos Modbus.

Última actualización:

Introduce tus valores para ver el resultado.
Publicidad
Publicidad

Cómo usar Conversor de endianness

  1. Elige el tipo de entrada: hex, decimal sin signo o decimal con signo.
  2. Elige un ancho o déjalo en Automático.
  3. Escribe el valor. Para bytes sin procesar de un volcado o un paquete, sepáralos con espacios.
  4. Haz clic en Convertir (los resultados también se actualizan mientras escribes).
  5. Lee el valor invertido y busca el orden correcto en la tabla de órdenes de bytes.

Órdenes de bytes de un vistazo (0x12345678)

OrdenNombreBytes en memoriaDónde aparece
ABCDBig-endian12 34 56 78Protocolos de red, archivos de clase Java, muchos formatos de archivo, Motorola 68k, predeterminado en Modbus
DCBALittle-endian78 56 34 12PC x86/x64, la mayoría de los dispositivos ARM, volcados de memoria de Windows y Linux
CDABPalabras intercambiadas56 78 12 34Algunos PLC y dispositivos Modbus para valores de 32 bits
BADCPalabras con bytes intercambiados34 12 78 56Algunos dispositivos Modbus y antiguos sistemas mid-endian

Intercambio de bytes en código

LenguajeIntercambio de 32 bits
C / C++ (GCC, Clang)__builtin_bswap32(x), o htonl/ntohl para orden de host ↔ red
C++23std::byteswap(x)
Pythonint.from_bytes(x.to_bytes(4, 'big'), 'little'), o struct.unpack('<I', data)
JavaScriptnew DataView(buf).getUint32(0, true) lee en little-endian
JavaInteger.reverseBytes(x), ByteBuffer.order(ByteOrder.LITTLE_ENDIAN)
C#BinaryPrimitives.ReverseEndianness(x)

Consejos

  • Invierte bytes, no dígitos hex: invertir "12345678" carácter por carácter da 87654321, que es incorrecto.
  • Si una lectura de sensor parece absurda (enorme o diminuta), el orden de bytes es el sospechoso habitual. Compara la columna de flotantes de cada orden con el valor que esperas.
  • Para la estructura de bits de un flotante (signo, exponente, mantisa) usa el conversor IEEE 754.

Preguntas frecuentes

¿Qué es la endianness?

La endianness es el orden en que se almacenan los bytes de un número de varios bytes. Big-endian almacena primero el byte más significativo (en la dirección más baja); little-endian almacena primero el byte menos significativo. 0x12345678 se almacena como 12 34 56 78 en big-endian y como 78 56 34 12 en little-endian.

¿Qué sistemas son little-endian?

Los procesadores x86 y x86-64, y ARM y RISC-V tal como se configuran normalmente, son little-endian. Los protocolos de red como TCP/IP usan big-endian, por eso se le llama orden de bytes de red.

¿Cómo convierto de big-endian a little-endian?

Invierte el orden de los bytes, no de los dígitos hex individuales. 0x12345678 se convierte en 0x78563412. La misma operación convierte en ambas direcciones.

¿Qué son los órdenes de bytes CDAB y BADC?

Son órdenes mixtos que aparecen cuando los valores de 32 bits se dividen en dos registros de 16 bits, como en Modbus. CDAB intercambia las dos palabras de 16 bits (0x12345678 → 0x56781234) y BADC intercambia los bytes dentro de cada palabra (→ 0x34127856). Si un flotante de un dispositivo parece incorrecto, prueba cada orden.

¿La endianness afecta a bytes sueltos o al texto?

No. Un solo byte no tiene orden de bytes, y el texto UTF-8 es una secuencia de bytes sueltos. La endianness importa en los números de varios bytes y en el texto UTF-16/UTF-32, que es lo que indica una marca de orden de bytes (BOM).

¿Cómo se ve un número negativo al invertirlo?

Los enteros negativos se almacenan en complemento a dos. −2 como valor de 32 bits es 0xFFFFFFFE; con los bytes invertidos se lee 0xFEFFFFFF, que es −16,777,217 como entero con signo.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Conversores de datos y formatos de archivo →