ForHosting KIT · Utilidades de desarrollo

Calculadora de orden de bytes

0x12345678 pasa a 0x78563412 al invertir sus cuatro bytes, el paso entre el orden de red y la memoria little-endian. Elija un ancho de 8, 16, 32 o 64 bits y vea el valor antes y después en hexadecimal, en decimal y byte a byte. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Valor
0x12345678
Ancho
32
Obtiene
Número de bytes
4
Hexadecimal antes
0x12345678
Hexadecimal después
0x78563412
Decimal antes
305419896

Las pilas de red, los formatos de archivo y el firmware embebido discrepan a menudo sobre si el byte más significativo de un entero va primero o al final. Un campo de longitud que en el cable se ve como 0x12345678 se almacena como 0x78563412 en memoria little-endian, y el viaje inverso es igual de habitual cuando usted vuelca un registro y necesita el valor en orden de red. Esta calculadora de intercambio de orden de bytes acepta un entero y una anchura de 8, 16, 32 o 64 bits, invierte los bytes dentro de ese contenedor y devuelve el valor hexadecimal antes y después del intercambio, junto con las formas decimales y los arrays de bytes correspondientes.

Qué hace un intercambio de orden de bytes a 8, 16, 32 y 64 bits

Un entero sin signo de varios bytes es una secuencia de octetos cuya significancia depende de la endianness. Escrito en notación posicional habitual, 0x12345678 significa que el byte más significativo es 0x12 y el menos significativo es 0x78. El almacenamiento big-endian coloca esos bytes en ese mismo orden; el little-endian los invierte, de modo que la memoria contiene 78 56 34 12.

Intercambiar el orden de bytes es exactamente esa inversión dentro de un contenedor de anchura fija: el intercambio de 32 bits de 0x12345678 es 0x78563412, el de 16 bits de 0x1234 es 0x3412, y un valor de 8 bits no cambia porque un solo byte no tiene orden que voltear. Un intercambio de 64 bits recorre igual ocho bytes, por eso 0x0123456789ABCDEF se convierte en 0xEFCDAB8967452301.

El hardware llama a esta instrucción bswap; los auxiliares de red POSIX como htons, htonl, ntohs y ntohl son la misma inversión cuando el orden del anfitrión es little-endian. Esta calculadora no adivina su plataforma y no necesita un indicador de endian de origen: usted aporta el entero como se escribe (o como cadena hex 0x) y una anchura, y el resultado es el entero cuyos bytes son el reverso de esa anchura.

Aplicar el intercambio dos veces restaura el valor original, lo que lo hace un ida y vuelta seguro para pruebas que convierten enteros del anfitrión a orden de red y de vuelta.

Cuándo conviene invertir el orden de los bytes

La ingeniería inversa de protocolos, la construcción de paquetes y los retos binarios de CTF necesitan con frecuencia un bswap de confianza para comparar un volcado hex de Wireshark y un volcado de registro little-endian sin voltear bytes a mano. Los equipos de embebido y firmware convierten constantes de configuración, semillas CRC y números mágicos entre el orden de red y el del MCU al escribir encabezados o comprobar imágenes de flash.

Quien enseña endianness necesita un oráculo en vivo que mantiene el entero fijo y solo invierte los bytes a una anchura elegida, para que el alumnado vea por qué htons sobre 0x1234 es 0x3412 en un anfitrión little-endian. Los scripts de integración continua que generan vectores de prueba para serializadores se benefician de una función pura minúscula en lugar de arrastrar una caja de herramientas binaria completa por un solo entero. La validación fallida no consume saldo.

Mantenga las peticiones pequeñas, fije las cadenas hex en las pruebas y obtendrá un intercambio de endian reproducible para ejercicios, analizadores y workers de borde.

Orden de red y orden del anfitrión

Convierta un entero de 16 o 32 bits entre el formato de cable big-endian y la memoria little-endian del anfitrión, igual que htons, htonl, ntohs y ntohl.

Constantes de firmware y volcados hex

Invierta los bytes de números mágicos, longitudes y semillas CRC cuando un volcado hex y un literal entero de C discrepan sobre la endianness.

Enseñar la endianness

Muestre ambas formas hexadecimales del mismo entero a 8, 16, 32 o 64 bits para que el alumnado vea que un intercambio solo invierte los bytes.

¿Es lo mismo que htons o bswap?

Sí. A 16 bits coincide con htons/ntohs en un anfitrión little-endian; a 32 bits coincide con htonl/ntohl y un bswap de 32 bits; a 64 bits coincide con un bswap de 8 bytes.

¿Qué ocurre si el valor no cabe en la anchura?

La calculadora no envuelve ni trunca: elija un contenedor más ancho o envíe un valor que quepa.

¿Se admiten números negativos?

Sí. Un valor negativo se convierte a complemento a dos en la anchura elegida y después se invierten los bytes de ese patrón sin signo.

¿Tengo que indicar si mi valor está en big-endian o little-endian?

No. Escriba el entero como lo escribiría usted, en decimal o en hexadecimal con 0x, y elija el ancho: el resultado es el entero con sus bytes invertidos dentro de ese ancho, sin suponer nada sobre su equipo.

¿Si invierto dos veces recupero el valor original?

Sí. Invertir los bytes dos veces con el mismo ancho devuelve exactamente el valor de partida, por eso sirve para comprobar conversiones de ida y vuelta entre el orden del equipo y el orden de red.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/dev/byte-order-swap

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/dev/byte-order-swap \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":"0x12345678","width":32}'
{
  "value": "0x12345678",
  "width": 32
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.byte_order_swap",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Los valores que no caben en la anchura elegida, los campos ausentes y las anchuras ilegales fallan con invalid_input en lugar de envolver en silencio.

Contrato de entrada, forma de la respuesta y errores

El entero debe caber en la anchura elegida: los valores no negativos pueden ser como máximo dos elevado a la anchura menos uno, y los negativos se interpretan como complemento a dos y deben situarse en el rango con signo de esa anchura. Los campos numéricos opcionales se omiten en lugar de ponerse a null cuando un resultado de 64 bits no sería exacto. Envíe por POST un cuerpo JSON con dos campos obligatorios: value, el entero a intercambiar, y width, la anchura en bits del contenedor. Value puede ser un número JSON, una cadena decimal, una cadena hexadecimal con prefijo 0x o, de forma opcional, una cadena binaria 0b; se aceptan los alias number, n, integer y hex. Width debe ser 8, 16, 32 o 64 (alias bits, bit_width y size) y puede llegar como número o como un token breve como 32bit. Un desbordamiento, un campo ausente, una cadena vacía, un no entero o una anchura fuera del conjunto cerrado fallan con invalid_input nombrando el campo; esos fallos no se facturan. Si hay éxito, el cuerpo incluye width y byte_count; hex_before y hex_after como cadenas 0x en mayúsculas rellenadas con ceros; decimal_before y decimal_after como cadenas decimales exactas para que los resultados de 64 bits no pierdan dígitos; bytes_before y bytes_after como arrays MSB primero de 0–255; y, cuando cada magnitud cabe en el rango de enteros seguros de JavaScript, decimal_before_number y decimal_after_number. Ejemplo: value 0x12345678 y width 32 produce hex_before 0x12345678, hex_after 0x78563412 y bytes 18,52,86,120 invertidos a 120,86,52,18.

Dónde una API de intercambio de orden de bytes aporta valor

Los sitios de contenido que compiten por «calculadora de intercambio de orden de bytes» ganan una ruta gratuita en el navegador que coincide byte a byte con la API de pago sobre el mismo módulo. Como la implementación es parse de nivel A, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo ni red de salida.

¿Cómo intercambia el orden de bytes de un entero?

Envíe value (decimal o hex 0x) y width (8, 16, 32 o 64). La API invierte los bytes de ese contenedor y devuelve hex_before, hex_after y los arrays decimales y de bytes correspondientes.

¿Cuánto cuesta la calculadora de intercambio de orden de bytes?

La herramienta del navegador es gratuita. Las peticiones API usan saldo prepago KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.

Ver la documentación completa del KIT →