Convierte de texto a binario y de binario a texto. Compatible con UTF-8.
Convierte cualquier texto en su representación binaria y cualquier cadena binaria de vuelta a texto legible. El codificador usa UTF-8 por defecto, lo que significa que cada carácter del inglés, cada letra acentuada, cada glifo CJK y cada emoji va y vuelve correctamente. La decodificación acepta binario separado por espacios, por guiones, por comas, por saltos de línea y también pegado de corrido. Todo ocurre localmente en tu navegador; no se sube nada.
El binario es base 2. El sistema numérico que las personas usamos a diario es base 10, con diez dígitos (del 0 al 9) y valores posicionales que son potencias de diez: las unidades, las decenas, las centenas, las unidades de millar. El binario usa solo dos dígitos (0 y 1), y los valores posicionales son potencias de dos: las unidades, los doses, los cuatros, los ochos, los dieciséis. El número decimal 13 es un ocho, más un cuatro, más cero doses, más una unidad, que en binario es 1101.
Las computadoras prefieren la base 2 porque el hardware subyacente lo hace. Un transistor tiene dos estados eléctricos confiables (encendido y apagado, voltaje alto y voltaje bajo), y asignarlos a los dígitos 0 y 1 da una implementación física inequívoca. Construir hardware que distinga diez niveles de voltaje distintos de forma confiable es mucho más difícil que construir hardware que distinga dos, y por eso la base 10 se quedó en las calculadoras y la base 2 ganó dentro de la máquina.
Un traductor de código binario no solo hace matemáticas. También hace traducción. Los números en binario son inequívocos. Los caracteres no. Para convertir la letra A a binario, la herramienta primero busca qué número representa la A. Esa búsqueda es una codificación de caracteres, y la elección de la codificación decide qué bytes obtienes.
ASCII (American Standard Code for Information Interchange, 1963) asignó un número del 0 al 127 a cada una de las letras latinas sin acento, los dígitos, la puntuación común y un puñado de códigos de control. La letra A es 65, la a minúscula es 97, el dígito 0 es 48. ASCII cubre todo lo que un teletipo en inglés necesitaba en 1963, pero no tiene la ñ del español, ni la é del francés, ni el cirílico ruso, ni el chino, y desde luego ningún emoji.
UTF-8 (Unicode Transformation Format, de 8 bits, 1992) es el superconjunto moderno. Para los primeros 128 puntos de código es idéntico byte a byte a ASCII, así que el texto en inglés simple se codifica igual. Por encima de 127, UTF-8 usa 2, 3 o 4 bytes por carácter para cubrir todas las escrituras en uso activo más los emoji y los símbolos. Esta herramienta usa UTF-8 por defecto, y por eso pegar café o 🚀 produce una salida correcta en vez de bytes ilegibles.
El byte no siempre tuvo 8 bits. Las primeras máquinas usaban bytes de 6, 7 y 9 bits según el fabricante. El IBM System/360 en 1964 estandarizó los 8 bits, y el resto de la industria lo siguió. Ocho bits dan 256 valores distintos, lo que bastaba para los 128 caracteres de ASCII más una extensión de idioma nacional (la «mitad alta» de ASCII que se usaba para el latín acentuado en Europa Occidental, el cirílico en Rusia, etcétera).
Como ASCII solo necesitaba 7 bits, a veces verás ASCII escrito en binario de 7 bits (con el cero inicial omitido). Para mantener la coherencia con la forma en que las computadoras almacenan el texto en memoria, esta herramienta siempre escribe cada byte como 8 bits completos, con un cero inicial para el rango ASCII. La letra A (decimal 65) es 01000001, no 1000001.
La cadena de dos letras Hi es el ejemplo no trivial más simple. La H mayúscula tiene el punto de código ASCII 72, la i minúscula tiene el punto de código ASCII 105. Ambos están por debajo de 128, así que UTF-8 codifica cada uno como un solo byte. Convertir 72 a binario: 64 + 8 = 72, así que los bits en las posiciones 6 y 3 están en 1, lo que da 01001000. Convertir 105: 64 + 32 + 8 + 1 = 105, así que los bits en las posiciones 6, 5, 3 y 0 están en 1, lo que da 01101001. La salida final es 01001000 01101001.
Para UTF-8 de varios bytes, el proceso es el mismo con más pasos. La cadena café tiene cuatro caracteres, pero cinco bytes en UTF-8: c (0x63), a (0x61), f (0x66) y é, que se codifica como 0xC3 0xA9. La salida binaria completa es 01100011 01100001 01100110 11000011 10101001, que es exactamente lo que produce esta herramienta.
Las cadenas binarias del mundo real vienen de muchas formas. Algunas tienen espacios entre los bytes (01001000 01101001). Algunas usan guiones (01001000-01101001). Algunas usan comas. Algunas van pegadas sin ningún separador (0100100001101001). Este decodificador detecta los separadores de forma automática buscando cualquier espacio, guion, coma o salto de línea en la entrada. Si no encuentra ninguno, recurre a dividir desde la izquierda en bloques de 8 bits.
Si el total de bits no es un múltiplo de 8, la herramienta muestra una advertencia. Aun así intenta una decodificación de mejor esfuerzo rellenando con ceros el último bloque, pero la salida probablemente sea incorrecta si la entrada quedó truncada a mitad de un byte. La advertencia es una pista para revisar si falta un 0 o un 1 antes de confiar en el resultado.
TextEncoder y TextDecoder. No se sube, registra ni transmite nada.Hi en realidad es 01001000 01101001 dentro de la máquina se queda mejor que la afirmación abstracta de que las computadoras guardan todo como números.Un byte tiene 8 bits porque ese era el tamaño necesario para guardar un carácter de ASCII extendido más un bit de paridad, y la industria del hardware se estandarizó en bytes de 8 bits en la década de 1970. El UTF-8 moderno todavía usa 8 bits como su unidad atómica, pero cada carácter puede ocupar de 1 a 4 bytes según el punto de código.
UTF-8 por defecto. UTF-8 es retrocompatible con el ASCII de 7 bits, así que el texto en inglés simple produce el mismo binario de cualquier forma. Para el latín acentuado, el cirílico, el griego, el chino, el japonés y los emoji, UTF-8 usa 2, 3 o 4 bytes por carácter.
Sí. El decodificador detecta los separadores de forma automática. Si tu binario tiene espacios, guiones, comas o saltos de línea entre los bytes, esos se usan como delimitadores. Si tu entrada es una cadena continua de 0 y 1, el decodificador la divide en bloques de 8 bits desde la izquierda.
La mayoría de los emoji viven fuera del Plano Multilingüe Básico. Su representación en UTF-8 requiere 4 bytes (32 bits). Por ejemplo, el emoji del cohete se codifica como los bytes 0xF0 0x9F 0x9A 0x80, que en binario es 11110000 10011111 10011010 10000000.
La herramienta muestra una advertencia y luego rellena el último bloque con ceros para completar el byte. El resultado suele ser un sinsentido si la entrada estaba realmente truncada, así que la advertencia es una señal para revisar si faltan dígitos antes de confiar en la salida.
No. El binario es solo una forma de escribir números en base 2. El código máquina es binario que resulta codificar instrucciones de CPU. Cuando traduces aquí la palabra Hi a binario, obtienes la representación en bytes UTF-8 de esos caracteres, no una instrucción de CPU.