Conversor de decimal a binario
Resultado
Binario
- Valores posicionales
- 16 + 1
Este conversor de decimal a binario reescribe un número entero de base diez al sistema binario, que es la base dos. El valor no cambia, solo cambia la notación, y el método que lleva hasta ella es la división repetida. Divide el número entre dos, quédate con el resto, divide el cociente entre dos y sigue así hasta que el cociente llegue a cero. Los restos son los dígitos binarios, pero salen al revés: el último resto que escribes es el primer dígito de la respuesta. Con 17 pasa esto: 17 ÷ 2 es 8 y sobra 1, luego 8 ÷ 2 es 4 y sobra 0, luego 4 ÷ 2 es 2 y sobra 0, luego 2 ÷ 2 es 1 y sobra 0, y por último 1 ÷ 2 es 0 y sobra 1. Leídos de abajo arriba los restos son 1, 0, 0, 0, 1, así que 17 se escribe 10001 en binario. Ese dar la vuelta es donde ocurren casi todos los errores, y por eso la página imprime cada división en lugar de solo la respuesta. Un valor posicional binario es una potencia de dos, y leer la respuesta como suma de esos valores es como se comprueba el trabajo: 10001 tiene un 16 y un 1 y nada más, y 16 + 1 vuelve a ser 17. La dirección importa igual cuando el número se acorta: un entero que es potencia de dos, como 16, sale como un uno seguido de ceros, y uno que es una unidad menos que una potencia de dos sale como puros unos, de modo que 15 es 1111 y 255 es 11111111.
Dividir 17 entre dos, una vuelta por línea, hasta que el cociente llega a cero
| Vuelta | División | Cociente | Resto |
|---|---|---|---|
| 1 | 17 ÷ 2 | 8 | 1 |
| 2 | 8 ÷ 2 | 4 | 0 |
| 3 | 4 ÷ 2 | 2 | 0 |
| 4 | 2 ÷ 2 | 1 | 0 |
| 5 | 1 ÷ 2 | 0 | 1 |
Esto es el método y no un resultado, y por eso está fijado en 17 mientras el panel de arriba convierte lo que hayas tecleado. Lee la columna del resto de abajo arriba y los dígitos de la respuesta aparecen en orden: 1, 0, 0, 0, 1, que es 10001. La razón de que la columna haya que leerla hacia arriba es que cada división encuentra el dígito menos significativo de lo que queda: la primera vuelta fija la posición de las unidades, la segunda la de los doses, y así sucesivamente, de modo que las vueltas recorren la respuesta de derecha a izquierda. La razón de que el proceso pueda pararse cuando el cociente toca cero es que un cociente nulo significa que no hay nada activo por encima de la posición actual. Dos detalles que merece la pena notar en la tabla: todos los restos son 0 o 1 y no pueden ser otra cosa, porque el divisor es dos; y el cociente se encoge a menos de la mitad en cada vuelta, que es por lo que la escalera del mayor número admitido tiene solo unas cincuenta líneas. Si estás convirtiendo otro número, reproduce las mismas cuatro columnas en papel: la tabla te dice cuáles son las columnas, no cuáles serán tus números.
Fórmula
17 ÷ 2 = 8 r 1 → 8 ÷ 2 = 4 r 0 → 4 ÷ 2 = 2 r 0 → 2 ÷ 2 = 1 r 0 → 1 ÷ 2 = 0 r 1 ⇒ 17 = 10001 = 16 + 1
- 17
- El número entero que hay que convertir, escrito en base diez. Tiene que ser entero: un punto decimal o un separador de millares se rechazan en lugar de redondearse, porque esta familia de páginas trabaja con números enteros de principio a fin
- ÷ 2
- El paso que se repite. Dos es la base a la que estás convirtiendo, así que cada vuelta pregunta cuántos doses caben, y lo que sobra es exactamente el dígito que corresponde a esa posición
- cociente
- La parte que pasa a la vuelta siguiente. El proceso se detiene cuando el cociente llega a cero, y esa es la señal de que no hace falta ningún valor posicional más alto
- resto
- El dígito que produce esa vuelta. Dividir entre dos solo puede dejar 0 o 1, y esa es la razón de que la respuesta salga con dígitos binarios y no con otro juego de símbolos cualquiera
- ⇒ 10001
- Los dígitos montados de abajo arriba. El primer resto que se encuentra es el dígito de la derecha y el último es el de la izquierda, y ese es el único paso de este método que se hace fácilmente al revés
- 16 + 1
- La respuesta leída como valores posicionales binarios: 10001 tiene unos solo en las posiciones del dieciséis y del uno, así que sumarlas devuelve 17. Esta es la comprobación que imprime la página, y funciona porque la suma de los valores posicionales de un número binario es el número
- 53 bits
- Cuánto puede medir la respuesta: cincuenta y tres dígitos binarios, que son 9.007.199.254.740.991 en decimal. Más allá de esa anchura una máquina no puede mantener separados los enteros vecinos, así que una entrada mayor se rechaza en lugar de convertirse en algo que solo lo parece
Escribir un número en base dos hace falta siempre que haya que producir a mano la notación propia de una máquina. Empaquetar varios valores pequeños en un solo entero obliga a averiguar qué bits ocupa cada uno, y eso empieza por tener el valor en binario: un canal de color, un juego de banderas de permisos, un campo de bits dentro de un registro de configuración. Quien lee una hoja de datos se encuentra la misma tarea desde el otro lado, porque los rangos y las máscaras que allí aparecen están escritos en hexadecimal o en binario y el número del que salieron es decimal. En un curso la dirección se pide directamente —convierte un número de decimal a binario y muestra el desarrollo— y la escalera impresa es exactamente ese desarrollo, una línea por división. Esta misma conversión responde a preguntas que no lo parecen: cuántos bits necesita un valor de este tamaño, cuál es la potencia de dos que queda justo por encima, y por qué un campo de ocho bits va de 0 a 255 y no a 256. Quien la hace de cabeza suele echar mano de las potencias de dos en lugar de la escalera, restando la mayor que quepa y repitiendo, y la salida de esta página también sirve para eso: cada resta que sale deja un 1 en esa posición, y la suma de valores posicionales impresa junto a la respuesta son esos unos sumados de vuelta. Si lo que buscas es la dirección contraria, o pasar el número a base dieciséis, las páginas hermanas están enlazadas abajo.
Ejemplos resueltos
Escribir 17 en binario
- 17 ÷ 2 = 8, resto 1 — apunta el 1
- 8 ÷ 2 = 4, resto 0
- 4 ÷ 2 = 2, resto 0
- 2 ÷ 2 = 1, resto 0
- 1 ÷ 2 = 0, resto 1 — el cociente ha llegado a cero, así que se para
- Lee los restos de abajo arriba: 1, 0, 0, 0, 1, que es 10001
El valor por defecto, y el que muestra la inversión: el primer resto que se encuentra es el último dígito de la respuesta. Leer los restos en el orden en que se produjeron da 10001 al revés. En este caso el número es capicúa por casualidad, así que la regla hay que comprobarla con el ejemplo siguiente. Verificación: 16 + 1 = 17.
Escribir un byte completo, 255
- 255 ÷ 2 = 127, resto 1
- 127 ÷ 2 = 63, resto 1 — y a partir de aquí todas las vueltas dejan 1 también
- 63 → 31 → 15 → 7 → 3 → 1, todas con resto 1
- 1 ÷ 2 = 0, resto 1 — ocho vueltas en total
- Ocho restos de 1, leídos de abajo arriba: 11111111
255 es el valor más grande que cabe en un campo de ocho bits, y esta es la razón: ocho dígitos binarios dan 2⁸ combinaciones y la mayor es 11111111. La otra cara del mismo hecho es que 256 es 100000000 —nueve dígitos—, que es el número que ya no cabe en un byte. La suma de valores posicionales es la regla entera sumada, y merece la pena verla una vez completa.
Una potencia de dos, 16
- 16 ÷ 2 = 8, resto 0
- 8 ÷ 2 = 4, resto 0
- 4 ÷ 2 = 2, resto 0
- 2 ÷ 2 = 1, resto 0
- 1 ÷ 2 = 0, resto 1
- Lee de abajo arriba: un 1 seguido de cuatro ceros, que es 10000
Una potencia de dos produce exactamente un resto de 1 y luego se acaba, así que la suma de valores posicionales se queda en un solo término. Esta es la forma que hay que reconocer: cualquier número que sea potencia de dos es un único uno seguido de ceros en binario, y por eso las potencias de dos son la unidad natural de las anchuras de campo, los tamaños de página y las capacidades de búfer.
Los ceros a la izquierda no cambian el valor
- Los ceros de la izquierda de la entrada están delante del número decimal y no aportan nada
- La conversión se hace sobre 17, exactamente como en el primer ejemplo
- Las dos salidas salen palabra por palabra iguales que allí
Los ceros de la izquierda se aceptan en la entrada porque un número decimal se pega a menudo desde algún sitio que lo ha rellenado, y no cambian nada: cero centenas siguen siendo cero centenas. Lo mismo vale en la dirección contraria, donde un valor se rellena a una anchura fija a propósito: 00010001 en un campo de ocho bits es el mismo número que 10001, y la página acepta cualquiera de los dos.
Limitaciones
Esta página convierte solo números enteros. Un punto decimal se rechaza en lugar de redondearse, así que 17,5 no se puede convertir: una lectura fraccionaria necesitaría una segunda regla sobre cuántos dígitos mostrar y cómo redondear el último, y todas las páginas de este grupo trazan esa frontera en el mismo sitio. Los separadores de millares también se rechazan, así que escribe 1500 y no 1.500; la coma se lee como punto decimal en algunos idiomas y adivinar entre las dos lecturas es peor que preguntar. La entrada puede ser como máximo 9.007.199.254.740.991, que son cincuenta y tres dígitos binarios; un valor mayor no cabe con exactitud en una máquina y se rechaza con un mensaje en lugar de convertirse en algo que parece una respuesta. Los ceros a la izquierda y un signo menos delante se aceptan. La página imprime la escalera de divisiones de 17 en la tabla de abajo, que es fija y no sigue al número que hayas tecleado: el panel responde por tu número, la tabla muestra el método. La dirección contraria, leer un número binario como decimal, es otra página, y esta no hace ninguna aritmética sobre el resultado.
Preguntas frecuentes
- ¿Cómo paso un número decimal a binario a mano?
- Divide entre dos, apunta el resto, divide el cociente entre dos y repite hasta que el cociente sea cero. Para 17 eso da los restos 1, 0, 0, 0, 1, y como cada vuelta produce el dígito siguiente por la derecha, se leen de abajo arriba para obtener 10001. La alternativa que a mucha gente le resulta más rápida es restar la potencia de dos mayor que quepa, marcar un 1 en esa posición y repetir con lo que sobre; las dos dan los mismos dígitos, y la suma de valores posicionales que imprime esta página es justo lo que deja el segundo método.
- ¿Por qué los restos se leen de abajo arriba?
- Porque la primera división responde a una pregunta sobre la posición más pequeña, no sobre la mayor. Dividir 17 entre dos pregunta cuántos doses hay y qué sobra, y lo que sobra es el dígito de las unidades, porque es la parte que no llegó a formar un dos. La vuelta siguiente hace la misma pregunta sobre los doses, y lo que deja es el dígito de los doses. Las vueltas recorren por tanto los dígitos de derecha a izquierda, y leerlas en el orden en que se escribieron da la respuesta invertida.
- ¿Puedo convertir un número decimal con parte fraccionaria?
- Aquí no. Esta página toma números enteros, así que 17,5 se rechaza en lugar de redondearse. Las fracciones en binario están perfectamente definidas —las posiciones a la derecha del punto valen un medio, un cuarto, un octavo—, pero una página que las aceptara tendría que decidir cuántas conservar y cómo redondear la última, y todas las páginas de este grupo convierten números enteros. Así la frontera se queda en el mismo sitio en todas, y un mismo valor nunca es aceptado por una página y rechazado por otra.
- ¿Cuál es el número decimal más grande que puedo convertir aquí?
- 9.007.199.254.740.991, cuya forma binaria son cincuenta y tres unos. El límite no lo elige esta página: a esa anchura una máquina deja de poder distinguir enteros vecinos, así que una respuesta más larga no sería fiable y se rechaza con un mensaje en lugar de convertirse. Ese mismo techo aparece en la página de lectura como un límite de cincuenta y tres dígitos, y en hexadecimal como catorce, porque es un solo límite escrito en tres bases.
- ¿Por qué la página imprime también una suma de valores posicionales?
- Para que la respuesta se pueda comprobar en lugar de darse por buena. El número binario es lo que has pedido, pero mirándolo no hay manera de distinguir un 10001 correcto de uno equivocado. Sumar los valores posicionales que contiene —16 y 1 en este caso— devuelve el número con el que empezaste, que es la conversión hecha al revés. Si la suma no vuelve a tu número, la cadena binaria está mal, y lo sabes sin necesidad de una segunda herramienta.
- ¿Hay una manera más rápida que dividir repetidamente?
- Para los números que uno se encuentra a menudo, sí: aprende las potencias de dos hasta 1024 más o menos y resta la mayor que quepa. 17 toma 16 y deja 1, así que la respuesta es 10001 antes de haber escrito una sola división. La escalera es mejor cuando el número no resulta familiar, porque no exige ninguna aritmética que se pueda hacer mal: dividir entre dos una y otra vez es mecánico. Los dos métodos terminan en los mismos dígitos y ninguno es más correcto que el otro.
Referencias
- Binary number — positional notation, place values, and the conversion between base two and base ten — Wolfram MathWorld (United States)
- Number base — why a numeral's value depends on its position and on the base, and how one quantity is written in several bases — Wolfram MathWorld (United States)
- Powers of two — the sequence 1, 2, 4, 8, 16 … that the halving method produces from the bottom up, catalogued as OEIS A000079 — OEIS Foundation Inc. (United States)