Calculadora de bases numéricas
Resultado
Resultado
- Decimal
- 17
- Resto
- 0
Todo sistema de numeración posicional es una regla para convertir una cadena de dígitos en un valor: se multiplica cada dígito por la base elevada a la potencia de su posición, contando desde cero a la derecha, y se suman los resultados. Esa potencia es lo único que distingue una base de otra, y por eso el valor posicional es la idea entera de la página. En base 2 los únicos dígitos son 0 y 1 y cada paso a la izquierda duplica: 1011 es 1×8 + 0×4 + 1×2 + 1×1, o sea 11. En base 16 los dígitos van del 0 al 9 y después de la A a la F, y cada paso a la izquierda multiplica por 16: FF es 15×16 + 15, o sea 255. Esta página permite elegir cualquier base entre 2 y 36 y sumar, restar, multiplicar o dividir en ella. Una base no es un tipo distinto de número, es otra manera de escribir los mismos números, y por eso la página imprime las dos lecturas del resultado una al lado de la otra. 1011 más 110 en base 2 da 10001, y eso es 11 más 6, que es 17, y 17 es 10001 en base 2. Las dos líneas dicen lo mismo; la línea decimal está ahí para quien no pasa el día en otra base. Hay tres cosas que conviene saber antes de empezar. Los dígitos por encima del nueve necesitan símbolos, y por acuerdo antiguo las letras de la A a la Z representan del diez al treinta y cinco, que es lo que hace de la base 36 la mayor que puede escribirse con las teclas de un teclado. Un dígito solo es válido si es menor que la base, así que el 2 no es un dígito en base 2 y 1012 no es un número binario aunque lo parezca. Y la base no forma parte del resultado: 10001 vale diecisiete solo porque se ha dicho que la base era dos, de modo que la página imprime los dígitos y deja la base en el campo que se ha elegido. La aritmética es la de siempre; lo único que cambia es la escritura. La suma produce un acarreo cuando una columna alcanza la base en lugar de alcanzar diez, y por eso FF más 1 se convierte en 100 en vez de detenerse en FG: no existe la G, porque dieciséis no es un dígito. La división es donde la aritmética binaria y la de cualquier otra base se gana el sueldo: dividir un número entre otro da un cociente y un resto, y los dos se imprimen en la base elegida. La fila del resto aparece siempre. En la suma, la resta y la multiplicación vale 0, porque no sobrar nada y sobrar cero son la misma afirmación cuando se trabaja con números enteros. La resta puede bajar de cero, y entonces el resultado lleva un signo menos escrito de la manera habitual: el signo no forma parte del conjunto de dígitos.
El número 255 escrito en las bases 2, 8, 10 y 16, con sus valores posicionales desarrollados
| Base | Escrito en esa base | Valor posicional |
|---|---|---|
| 2 | 11111111 | 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 |
| 8 | 377 | 3×64 + 7×8 + 7 |
| 10 | 255 | 2×100 + 5×10 + 5 |
| 16 | FF | 15×16 + 15 |
Al leer la columna del medio aparece el mismo valor de cuatro maneras: 11111111, 377, 255 y FF. Entre las filas no ha cambiado nada del número, solo los símbolos y el tamaño de los pasos. La tercera columna es la aritmética que convierte cada escritura de vuelta en 255: en base 2 hay ocho unos, así que aparecen todas las potencias desde 128 hasta 1; en base 16 solo hay dos dígitos, pero el primero se multiplica por 16 en lugar de por 2. Fíjate en cómo se acorta la anchura a medida que sube la base. La base 2 necesita ocho dígitos para decir 255, la base 8 necesita tres, la base 10 necesita tres y la base 16 necesita dos: una base mayor dice el mismo valor en menos posiciones, porque cada posición vale más. Ese intercambio es la razón entera de que existan las bases: la base 16 se usa para los bytes no porque sea especial desde el punto de vista matemático, sino porque dos de sus dígitos cubren exactamente un byte, y la base 2 se usa en el nivel de debajo porque un cable que solo puede estar encendido o apagado tiene exactamente dos estados. La tabla no sigue los números que hayas escrito: el panel de arriba responde a esos, y esto muestra un valor en cuatro escrituras.
Fórmula
1011 + 110 = 10001 en base 2, y 11 + 6 = 17 en base 10 ⇒ 10001 en base 2 es 17, un mismo valor escrito de dos maneras
- b
- La base, un número entero entre 2 y 36. Es una casilla numérica corriente y no una lista de treinta y cinco opciones, así que los límites se aplican sobre la propia casilla: 1 y 37 se rechazan antes de que empiece el cálculo. La base 1 es imposible porque un solo símbolo no puede contar más allá del cero, y la 37 necesitaría un trigésimo séptimo símbolo que ningún teclado tiene
- 1011
- Once escrito en base 2: 1×8 + 0×4 + 1×2 + 1×1. Se lee de derecha a izquierda, porque esa es la dirección en la que corren las potencias. Ese mismo once en base 10 es 11, en base 8 es 13 y en base 16 es B
- 10001
- El resultado de 1011 + 110, todavía en base 2: 1×16 + 0×8 + 0×4 + 0×2 + 1×1, que es 17. Por el camino hubo dos acarreos —la columna de los unos llegó a 2 y la de los cuatros llegó a 2— y cada acarreo avanzó una posición hacia la izquierda, exactamente igual que cuando en base 10 una columna llega a diez
- FF
- Quince por dieciséis más quince, que es 255. La base 16 es la que encaja exactamente en un byte: dos dígitos hexadecimales cubren todos los valores del 0 al 255, y por eso esta base aparece allí donde aparecen los bytes. De la A a la F son los seis dígitos que van después del nueve
- 17 ÷ 5 = 3 r 2
- La división escrita del derecho. En base 2 esa misma división es 10001 ÷ 101 = 11 y sobra 10, y la página imprime el cociente como resultado y el resto en su propia fila. El resto siempre es menor que el divisor: eso es lo que lo convierte en un resto y no en una fracción
- A to Z
- Los veintiséis dígitos extra que llevan la base 10 hasta la base 36. La A es diez, la B es once y la Z es treinta y cinco. Sirven tanto mayúsculas como minúsculas, y la página imprime mayúsculas
Leer un valor de un sistema que habla otra base es el uso de todos los días. Un volcado de memoria imprime los bytes como parejas de dígitos hexadecimales, un permiso de archivo aparece como 755 porque cada uno de los tres dígitos empaqueta tres bits, una máscara de subred son cuatro grupos de ocho bits y una dirección IPv6 es hexadecimal de principio a fin. En todos esos casos el valor decimal no es lo que se quiere: lo que se quiere ver es la base que ve la máquina. Escribir hacia esos mismos sistemas es el caso espejo: fijar el patrón de bits de un registro, componer un color a partir de sus bytes de rojo, verde y azul, o averiguar por qué un valor desplazado salió negativo significan hacer aritmética en una base que no es diez. En los estudios, la aritmética binaria y la de cualquier otra base se enseña como lo que demuestra que un sistema posicional es una elección y no un hecho, y los ejercicios son exactamente lo que hace esta página: acarrear en base 2, pedir prestado en base 8 y comprobar que la misma operación da el mismo resultado en todas las bases en cuanto los dos lados se leen en la misma. Un cuarto uso es revisar el propio trabajo: si 1011 más 110 en base 2 diera algo distinto de 17 en decimal, una de las dos lecturas está mal, y tener las dos en la página es lo que hace posible esa comprobación. Cuando la base es concretamente 2 o 16, las páginas dedicadas van más lejos: binary-calculator y hex-calculator son esta misma aritmética con la base ya rellenada, y las dos páginas de conversión se ocupan de pasar de una base a otra sin ninguna operación de por medio.
Ejemplos resueltos
Sumar en base 2: 1011 + 110
- Lee los dos operandos en decimal para saber qué se está sumando: 1011 es 11 y 110 es 6
- 11 + 6 = 17
- Escribe 17 en base 2: 17 = 16 + 1, así que los dígitos son 1 0 0 0 1
- El resultado en base 2 es 10001, y la fila decimal confirma que vale 17
Es la entrada por defecto y la que la tabla de abajo recorre en otra base. Sumar las dos cadenas columna a columna da lo mismo: 1 + 0 es 1, 1 + 1 es 0 y me llevo 1, luego 0 + 1 más el acarreo es 0 y me llevo 1, y el último acarreo aterriza en una columna nueva a la izquierda. Acarrear cuando una columna llega a 2 es toda la suma en base 2; los acarreos son lo que hace que 10001 tenga cinco dígitos cuando los operandos tenían cuatro y tres.
El acarreo que desborda el último dígito: FF + 1 en base 16
- FF es 15×16 + 15 = 240 + 15 = 255
- Al sumarle 1 se obtiene 256
- Escribe 256 en base 16: 256 = 1×256 + 0×16 + 0, así que los dígitos son 1 0 0
- El resultado es 100 en base 16, que son 256 y no cien
Es la trampa para la que existe este ejemplo: 100 es un número pequeño en base 10 y uno mucho mayor en base 16. Una lectura columna a columna enseña por qué sale tan ancho: F más 1 son dieciséis, que no es un dígito en base 16, así que se acarrea y deja un 0 detrás, y el 1 acarreado aterriza sobre una F llena, que vuelve a acarrear. Una sola suma subió el resultado dos posiciones. Es el mismo suceso que hace que 99 + 1 dé 100 en base 10, y la razón por la que un byte que pasa de 255 a 256 necesita un segundo byte.
División con resto: 1011 ÷ 10 en base 2
- 1011 es 11 y 10 es 2
- 11 ÷ 2 = 5 y sobra 1
- Escribe 5 en base 2: 5 = 4 + 1, así que los dígitos son 1 0 1
- El cociente es 101 y la fila del resto marca 1; 101 vale 5, como confirma la fila decimal
Es la única de las cuatro operaciones cuyo resto no es cero, y por eso la fila del resto está en la página. Conviene notar que el cociente es solo la parte entera: 11 dividido entre 2 es 5,5, y la página imprime 101 con un resto de 1 en lugar de 10,1 o 101,1, porque el resto mantiene el resultado en números enteros: el medio está en ese 1. La comprobación es 5 × 2 + 1 = 11, y se cumple en todas las bases.
Limitaciones
La base tiene que ser un número entero entre 2 y 36. La 1 es imposible porque un solo dígito no puede expresar ningún valor que no sea cero, y la 37 necesitaría un trigésimo séptimo símbolo; la casilla rechaza las dos antes de que empiece el cálculo. Los decimales y las fracciones se rechazan en lugar de redondearse, y lo mismo ocurre con un signo menos delante de un operando: la página analiza dígitos, y un signo o un punto no son dígitos. Un dígito demasiado grande para la base elegida es un caso aparte, y conviene ser claro sobre cómo se trata. Escribe 1012 con la base puesta en 2 y obtendrás un error de cálculo general en lugar de un mensaje que nombre el dígito culpable. Es un intercambio deliberado y no un descuido: la comprobación de la casilla recibe la cadena y nada más, así que no puede leer el campo de la base que tiene al lado, y las opciones honestas eran aceptar cualquier cadena de dígitos que pudiera ser legal en alguna base o aceptarlo todo sin más. La página tomó la primera. El efecto práctico es que la casilla se mantiene limpia y el error aparece en el panel de resultados: la respuesta nunca es incorrecta, solo está peor explicada. Los dos operandos están limitados a sesenta caracteres y al mayor número entero que un doble puede representar de forma exacta, 9007199254740991, que son dieciséis dígitos en base 10 y unos cincuenta en base 2. El resultado está sujeto al mismo techo: se calcula de forma exacta y después se comprueba, de modo que una operación cuyo resultado lo rebase se rechaza en lugar de imprimirse redondeada. Las letras pueden escribirse en mayúscula o en minúscula y se imprimen en mayúscula, así que ff y FF son la misma entrada. Los ceros a la izquierda se aceptan y se ignoran, lo que significa que 00001011 y 1011 son el mismo número y los dos se imprimen como 1011. La tabla de referencia de abajo está fijada en 255 escrito en las bases 2, 8, 10 y 16 y no sigue lo que se haya escrito: el panel responde a tus números, la tabla muestra las cuatro maneras de escribir un solo valor.
Preguntas frecuentes
- ¿Cómo se suman dos números en una base que no es diez?
- Se suma columna a columna desde la derecha, exactamente igual que en base 10, pero se acarrea cuando una columna alcanza la base en lugar de cuando alcanza diez. En base 2 el único umbral de acarreo es el 2: 1 + 1 es 0 y me llevo 1. Así, 1011 + 110 es 10001, porque la columna de los doses y la de los cuatros se desbordaron y empujaron un 1 a la posición siguiente. Si prefieres no llevar la cuenta de los acarreos, pasa los dos operandos a decimal, haz allí la aritmética y vuelve a pasarlos: eso es lo que muestra la fila decimal de esta página, y da el mismo resultado siempre.
- ¿Por qué falla 1012 cuando la base es 2?
- Porque el 2 no es un dígito en base 2: los dígitos son 0 y 1 y nada más. La regla es que un dígito tiene que ser menor que la base, así que la base 2 admite 0 y 1, la base 8 admite del 0 al 7, la base 10 admite del 0 al 9 y la base 16 admite del 0 al 9 y de la A a la F. Lo verás como un error de cálculo general y no como un mensaje que nombre el dígito, y eso es una aspereza conocida: la comprobación de la casilla solo ve la cadena que has escrito, no la base que has elegido, así que acepta cualquier cadena de dígitos que pudiera ser legal en alguna base y deja la comprobación específica de la base al cálculo. La respuesta nunca es incorrecta, pero la explicación es más pobre de lo que debería.
- ¿Qué bases puedo usar y por qué se acaba en la 36?
- Cualquier número entero entre 2 y 36. El techo es un teclado, no la matemática: los dígitos por encima del nueve necesitan símbolos, los símbolos convencionales son las letras de la A a la Z, y son veintiséis: diez más veintiséis son treinta y seis. La base 1 es imposible por otro motivo: con un solo dígito no se puede escribir ningún valor por encima de cero, porque cada posición valdría 1 y no habría manera de llegar a 2.
- ¿Es 100 en base 16 lo mismo que cien?
- No, y este es el error para el que existe el segundo ejemplo de la página. En base 16, 100 significa 1×256 + 0×16 + 0, que es 256. Los dígitos son los mismos caracteres, pero las posiciones valen dieciséis veces más en cada paso en lugar de diez veces, así que los mismos tres símbolos representan un valor distinto. La fila decimal de la página está precisamente para que nunca haya que adivinar qué lectura se quiere decir.
- ¿Por qué se muestra siempre el resto, incluso en una suma?
- Porque en los números enteros, no sobrar nada y sobrar cero son la misma afirmación, y una fila que aparece y desaparece se lee peor que una fila que está siempre. En la suma, la resta y la multiplicación la fila marca 0. Solo la división puede producir un resto distinto de cero, y allí la fila lleva la parte que no se dividió de manera exacta: 1011 ÷ 10 en base 2 deja 1, que es el medio de 11 ÷ 2 que el cociente se dejó fuera.
- ¿Puedo hacer aritmética en base 10 con esta página?
- Sí, y es una manera útil de comprobar que la página coincide con una calculadora corriente: pon la base en 10 y todo se comporta exactamente como esperas, porque los dígitos, los acarreos y el formato del resultado no cambian. Lo que ganas es la fila del resto y la declaración explícita de la base, y lo que pierdes es nada. Las páginas vecinas van al revés: binary-calculator y hex-calculator son esta misma aritmética con la base ya puesta en 2 y en 16, y las de conversión se ocupan de cambiar un valor de una base a otra sin ninguna operación de por medio.
Referencias
- Base — qué es un sistema de numeración posicional, cómo se leen los dígitos de un desarrollo en base b y por qué la base tiene que ser un entero mayor que 1 — Wolfram MathWorld (United States)
- Hexadecimal — el sistema en base 16, las seis letras que van después del nueve y la convención que hace que dos dígitos hexadecimales sean un byte — Wolfram MathWorld (United States)
- Sistema de numeración hexadecimal (base 16): teoría, propiedades, paso de base 16 a decimal y ejercicios resueltos — Matesfacil (España)
- Sistema de numeración octal (base 8): teoría, propiedades y ejercicios resueltos de cambio de base — Matesfacil (España)