Un número binario es un número expresado en el sistema numérico de base -2 o sistema numérico binario , un método para representar números que utiliza sólo dos símbolos para los números naturales : normalmente "0" ( cero ) y "1" ( uno ). Un número binario también puede referirse a un número racional que tiene una representación finita en el sistema de numeración binario, es decir, el cociente de un número entero elevado a dos.
El sistema numérico de base 2 es una notación posicional con una base de 2 . Cada dígito se denomina bit o dígito binario. Debido a su sencilla implementación en circuitos electrónicos digitales que utilizan puertas lógicas , el sistema binario es utilizado por casi todas las computadoras y dispositivos basados en computadoras modernos , como un sistema de uso preferido, sobre varias otras técnicas humanas de comunicación, debido a la simplicidad de la lenguaje y la inmunidad al ruido en la implementación física. [1]
El sistema numérico binario moderno fue estudiado en Europa en los siglos XVI y XVII por Thomas Harriot , Juan Caramuel y Lobkowitz y Gottfried Leibniz . Sin embargo, los sistemas relacionados con los números binarios aparecieron antes en múltiples culturas, incluidos el antiguo Egipto, China y la India.
Los escribas del antiguo Egipto usaban dos sistemas diferentes para sus fracciones, las fracciones egipcias (no relacionadas con el sistema numérico binario) y las fracciones del Ojo de Horus (llamadas así porque muchos historiadores de las matemáticas creen que los símbolos utilizados para este sistema podrían ordenarse para formar el ojo de Horus , aunque esto ha sido discutido). [2] Las fracciones del Ojo de Horus son un sistema de numeración binaria para cantidades fraccionarias de grano, líquidos u otras medidas, en el que una fracción de un hekat se expresa como la suma de las fracciones binarias 1/2, 1/4, 1/ 8, 1/16, 1/32 y 1/64. Las primeras formas de este sistema se pueden encontrar en documentos de la Quinta Dinastía de Egipto , aproximadamente 2400 a.C., y su forma jeroglífica completamente desarrollada data de la Decimonovena Dinastía de Egipto , aproximadamente 1200 a.C. [3]
El método utilizado para la multiplicación del antiguo Egipto también está estrechamente relacionado con los números binarios. En este método, multiplicar un número por un segundo se realiza mediante una secuencia de pasos en los que un valor (inicialmente el primero de los dos números) se duplica o se le vuelve a sumar el primer número; el orden en el que se deben realizar estos pasos viene dado por la representación binaria del segundo número. Este método se puede ver en uso, por ejemplo, en el Papiro Matemático de Rhind , que data alrededor del 1650 a.C. [4]
El I Ching data del siglo IX a.C. en China. [5] La notación binaria en el I Ching se utiliza para interpretar su técnica de adivinación cuaternaria . [6]
Se basa en la dualidad taoísta del yin y el yang . [7] Ocho trigramas (Bagua) y un conjunto de 64 hexagramas ("sesenta y cuatro" gua) , análogos a los números binarios de tres y seis bits, estaban en uso al menos ya en la dinastía Zhou de la antigua China. . [5]
El erudito de la dinastía Song , Shao Yong (1011-1077), reorganizó los hexagramas en un formato que se asemeja a los números binarios modernos, aunque no pretendía que su disposición se utilizara matemáticamente. [6] Ver el bit menos significativo encima de hexagramas individuales en el cuadrado de Shao Yong [8] y leer a lo largo de las filas, ya sea desde abajo derecha hasta arriba a la izquierda con líneas continuas como 0 y líneas discontinuas como 1 o desde arriba a la izquierda hasta abajo derecha con líneas continuas Las líneas como 1 y las líneas discontinuas como 0 hexagramas se pueden interpretar como una secuencia de 0 a 63. [9]
El erudito indio Pingala (c. siglo II a. C.) desarrolló un sistema binario para describir la prosodia . [10] [11] Describió metros en forma de sílabas cortas y largas (estas últimas tienen la misma longitud que dos sílabas cortas). [12] Eran conocidas como sílabas laghu (ligeras) y guru (pesadas).
El clásico hindú de Pingala titulado Chandaḥśāstra (8.23) describe la formación de una matriz para dar un valor único a cada metro. "Chandaḥśāstra" se traduce literalmente como ciencia de los metros en sánscrito. Las representaciones binarias en el sistema de Pingala aumentan hacia la derecha, y no hacia la izquierda como en los números binarios de la notación posicional moderna . [13] En el sistema de Pingala, los números comienzan desde el número uno, y no desde el cero. Cuatro sílabas cortas "0000" es el primer patrón y corresponde al valor uno. El valor numérico se obtiene sumando uno a la suma de valores posicionales . [14]
Los residentes de la isla de Mangareva en la Polinesia Francesa utilizaban un sistema híbrido binario- decimal antes de 1450. [15] Los tambores con tonos binarios se utilizan para codificar mensajes en África y Asia. [7] Conjuntos de combinaciones binarias similares al I Ching también se han utilizado en sistemas tradicionales de adivinación africanos como Ifá, así como en la geomancia occidental medieval . La mayoría de las lenguas indígenas australianas utilizan un sistema de base 2. [dieciséis]
A finales del siglo XIII Ramon Llull tenía la ambición de dar cuenta de toda la sabiduría en todas las ramas del conocimiento humano de la época. Para ello desarrolló un método general o "Ars generalis" basado en combinaciones binarias de una serie de principios o categorías básicos simples, por lo que ha sido considerado un predecesor de la informática y la inteligencia artificial. [17]
En 1605, Francis Bacon discutió un sistema mediante el cual las letras del alfabeto podrían reducirse a secuencias de dígitos binarios, que luego podrían codificarse como variaciones apenas visibles en la fuente en cualquier texto aleatorio. [18] Es importante destacar que para la teoría general de la codificación binaria, añadió que este método podría usarse con cualquier objeto: "siempre que esos objetos sean capaces de una doble diferencia únicamente; como campanas, trompetas, luces y antorchas, por el informe de mosquetes, y cualesquiera instrumentos de naturaleza similar". [18] (Ver el cifrado de Bacon ).
En 1617, John Napier describió un sistema al que llamó aritmética de ubicación para realizar cálculos binarios utilizando una representación no posicional mediante letras. Thomas Harriot investigó varios sistemas de numeración posicional, incluido el binario, pero no publicó sus resultados; fueron encontrados más tarde entre sus papeles. [19] Posiblemente la primera publicación del sistema en Europa fue la de Juan Caramuel y Lobkowitz , en 1700. [20]
Leibniz estudió la numeración binaria en 1679; su trabajo aparece en su artículo Explication de l'Arithmétique Binaire (publicado en 1703). El título completo del artículo de Leibniz se traduce al inglés como "Explicación de la aritmética binaria, que utiliza sólo los caracteres 1 y 0, con algunas observaciones sobre su utilidad y sobre la luz que arroja sobre las antiguas figuras chinas de Fu Xi " . [21] El sistema de Leibniz utiliza 0 y 1, como el sistema numérico binario moderno. Un ejemplo del sistema numérico binario de Leibniz es el siguiente: [21]
Mientras mantenía correspondencia con el sacerdote jesuita Joachim Bouvet en 1700, quien se había convertido en un experto en el I Ching mientras era misionero en China, Leibniz explicó su notación binaria y Bouvet demostró en sus cartas de 1701 que el I Ching era una invención paralela e independiente. de notación binaria. Leibniz y Bouvet concluyeron que este mapeo era evidencia de importantes logros chinos en el tipo de matemáticas filosóficas que admiraba. [22] De esta invención paralela, Liebniz escribió en su "Explicación de la aritmética binaria" que "esta restitución de su significado, después de un intervalo de tiempo tan grande, parecerá aún más curiosa". [23]
La relación era una idea central de su concepto universal de lenguaje o característico universalis , una idea popular que sería seguida de cerca por sus sucesores como Gottlob Frege y George Boole en la formación de la lógica simbólica moderna . [24] Leibniz conoció el I Ching por primera vez a través de su contacto con el jesuita francés Joachim Bouvet , quien visitó China en 1685 como misionero. Leibniz vio los hexagramas del I Ching como una afirmación de la universalidad de sus propias creencias religiosas como cristiano. [25] Los números binarios eran fundamentales para la teología de Leibniz. Creía que los números binarios simbolizaban la idea cristiana de creatio ex nihilo o creación de la nada. [26]
[Un concepto que] no es fácil de impartir a los paganos, es la creación ex nihilo a través del poder omnipotente de Dios. Ahora bien, se puede decir que nada en el mundo puede presentar y demostrar mejor este poder que el origen de los números, tal como se presenta aquí a través de la presentación simple y sin adornos del Uno y el Cero o la Nada.
— Carta de Leibniz al duque de Brunswick adjunta con los hexagramas del I Ching [25]
En 1854, el matemático británico George Boole publicó un artículo histórico que detallaba un sistema algebraico de lógica que se conocería como álgebra booleana . Su cálculo lógico se convertiría en un instrumento decisivo en el diseño de circuitos electrónicos digitales. [27]
En 1937, Claude Shannon realizó su tesis de maestría en el MIT que implementó el álgebra booleana y la aritmética binaria utilizando relés e interruptores electrónicos por primera vez en la historia. Titulada Un análisis simbólico de circuitos de conmutación y relés , la tesis de Shannon esencialmente fundamentó el diseño práctico de circuitos digitales . [28]
En noviembre de 1937, George Stibitz , que entonces trabajaba en los Laboratorios Bell , completó una computadora basada en relés a la que denominó "Modelo K" (por " Cocina ", donde la había ensamblado), que calculaba mediante suma binaria. [29] Bell Labs autorizó un programa de investigación completo a finales de 1938 con Stibitz a la cabeza. Su computadora de números complejos, terminada el 8 de enero de 1940, pudo calcular números complejos . En una demostración en la conferencia de la Sociedad Estadounidense de Matemáticas en Dartmouth College el 11 de septiembre de 1940, Stibitz pudo enviar comandos remotos a la Calculadora de números complejos a través de líneas telefónicas mediante un teletipo . Fue la primera computadora utilizada de forma remota a través de una línea telefónica. Algunos participantes de la conferencia que presenciaron la manifestación fueron John von Neumann , John Mauchly y Norbert Wiener , quien escribió sobre ella en sus memorias. [30] [31] [32]
La computadora Z1 , que fue diseñada y construida por Konrad Zuse entre 1935 y 1938, utilizaba lógica booleana y números binarios de punto flotante . [33]
Cualquier número puede representarse mediante una secuencia de bits (dígitos binarios), que a su vez puede representarse mediante cualquier mecanismo capaz de estar en dos estados mutuamente excluyentes. Cualquiera de las siguientes filas de símbolos puede interpretarse como el valor numérico binario de 667:
El valor numérico representado en cada caso depende del valor asignado a cada símbolo. En los primeros días de la informática, se utilizaban interruptores, agujeros perforados y cintas de papel perforadas para representar valores binarios. [34] En una computadora moderna, los valores numéricos pueden estar representados por dos voltajes diferentes ; En un disco magnético , se pueden utilizar polaridades magnéticas . Un estado "positivo", " sí " o "encendido" no es necesariamente equivalente al valor numérico de uno; Depende de la arquitectura en uso.
De acuerdo con la representación habitual de los números mediante números arábigos , los números binarios se escriben habitualmente utilizando los símbolos 0 y 1 . Cuando se escriben, los números binarios suelen tener subíndices, prefijos o sufijos para indicar su base o base . Las siguientes notaciones son equivalentes:
Cuando se hablan, los números binarios generalmente se leen dígito por dígito, para distinguirlos de los números decimales. Por ejemplo, el número binario 100 se pronuncia uno cero cero , en lugar de cien , para hacer explícita su naturaleza binaria y con fines de corrección. Dado que el número binario 100 representa el valor cuatro, sería confuso referirse al número como cien (una palabra que representa un valor o cantidad completamente diferente). Alternativamente, el número binario 100 se puede leer como "cuatro" (el valor correcto ), pero esto no hace explícita su naturaleza binaria.
Contar en binario es similar a contar en cualquier otro sistema numérico. Comenzando con un solo dígito, el conteo continúa a través de cada símbolo, en orden creciente. Antes de examinar el conteo binario, es útil analizar brevemente el sistema de conteo decimal, más familiar, como marco de referencia.
El conteo decimal utiliza los diez símbolos del 0 al 9 . El conteo comienza con la sustitución incremental del dígito menos significativo (el dígito más a la derecha), que a menudo se denomina primer dígito . Cuando se agotan los símbolos disponibles para esta posición, el dígito menos significativo se restablece a 0 y el siguiente dígito de mayor significado (una posición a la izquierda) se incrementa ( desbordamiento ) y se reanuda la sustitución incremental del dígito de orden inferior. Este método de reinicio y desbordamiento se repite para cada dígito de importancia. El conteo avanza de la siguiente manera:
El conteo binario sigue exactamente el mismo procedimiento, y nuevamente la sustitución incremental comienza con el dígito o bit binario menos significativo (el que está más a la derecha, también llamado primer bit ), excepto que solo los dos símbolos 0 y 1 están disponibles. Por lo tanto, después de que un bit llega a 1 en binario, un incremento lo restablece a 0 pero también provoca un incremento del siguiente bit a la izquierda:
En el sistema binario, cada bit representa una potencia creciente de 2, donde el bit más a la derecha representa 2 0 , el siguiente representa 2 1 , luego 2 2 , y así sucesivamente. El valor de un número binario es la suma de las potencias de 2 representadas por cada bit "1". Por ejemplo, el número binario 100101 se convierte a formato decimal de la siguiente manera:
Las fracciones en aritmética binaria terminan sólo si 2 es el único factor primo en el denominador . Como resultado, 1/10 no tiene una representación binaria finita ( 10 tiene factores primos 2 y 5 ). Esto hace que 10 × 1/10 no sea exactamente igual a 1 en aritmética binaria de punto flotante . Como ejemplo, para interpretar la expresión binaria para 1/3 = .010101..., esto significa: 1/3 = 0 × 2 −1 + 1 × 2 −2 + 0 × 2 −3 + 1 × 2 −4 +... = 0,3125 +... No se puede encontrar un valor exacto con la suma de un número finito de potencias inversas de dos, los ceros y los unos en la representación binaria de 1/3 se alternan para siempre.
La aritmética en binario es muy parecida a la aritmética en otros sistemas numéricos de notación posicional . La suma, resta, multiplicación y división se pueden realizar con números binarios.
La operación aritmética más simple en binario es la suma. Sumar dos números binarios de un solo dígito es relativamente simple y se utiliza una forma de llevar:
Agregar dos dígitos "1" produce un dígito "0", mientras que habrá que agregar 1 a la siguiente columna. Esto es similar a lo que sucede en decimal cuando se suman ciertos números de un solo dígito; si el resultado iguala o excede el valor de la base (10), se incrementa el dígito de la izquierda:
Esto se conoce como llevar . Cuando el resultado de una suma excede el valor de un dígito, el procedimiento es "llevar" la cantidad sobrante dividida por la base (es decir, 10/10) hacia la izquierda, sumándola al siguiente valor posicional. Esto es correcto ya que la siguiente posición tiene un peso mayor en un factor igual a la base. El transporte funciona de la misma manera en binario:
1 1 1 1 1 (dígitos llevados) 0 1 1 0 1+ 1 0 1 1 1-------------= 1 0 0 1 0 0 = 36
En este ejemplo, se suman dos números: 01101 2 (13 10 ) y 10111 2 (23 10 ). La fila superior muestra los bits de acarreo utilizados. Comenzando en la columna de la derecha, 1 + 1 = 10 2 . El 1 se lleva hacia la izquierda y el 0 se escribe en la parte inferior de la columna de la derecha. Se agrega la segunda columna de la derecha: 1 + 0 + 1 = 10 2 nuevamente; se lleva el 1 y el 0 se escribe en la parte inferior. La tercera columna: 1 + 1 + 1 = 11 2 . Esta vez, se lleva un 1 y se escribe un 1 en la fila inferior. Procediendo así se obtiene la respuesta final 100100 2 (36 10 ).
Cuando las computadoras deben sumar dos números, la regla de que: x xor y = (x + y) mod 2 para dos bits cualesquiera xey también permite un cálculo muy rápido.
Una simplificación para muchos problemas de suma binaria es el "método de acarreo largo" o "método Brookhouse de suma binaria". Este método es particularmente útil cuando uno de los números contiene una gran cantidad de unos. Se basa en la premisa simple de que, en el sistema binario, cuando se le da un conjunto de dígitos compuestos enteramente por n unos (donde n es cualquier longitud entera), sumar 1 dará como resultado el número 1 seguido de una cadena de n ceros. Ese concepto se sigue, lógicamente, al igual que en el sistema decimal, donde sumar 1 a una cadena de n 9 dará como resultado el número 1 seguido de una cadena de n 0:
decimal binario 1 1 1 1 1 igualmente 9 9 9 9 9 + 1 + 1 ——————————— ——————————— 1 0 0 0 0 0 1 0 0 0 0 0
Cadenas tan largas son bastante comunes en el sistema binario. A partir de ahí se descubre que se pueden sumar números binarios grandes mediante dos sencillos pasos, sin operaciones de acarreo excesivas. En el siguiente ejemplo, se suman dos números: 1 1 1 0 1 1 1 1 1 0 2 (958 10 ) y 1 0 1 0 1 1 0 0 1 1 2 (691 10 ), utilizando el método tradicional de transporte. a la izquierda y el método de acarreo largo a la derecha:
Método de transporte tradicional Método de transporte prolongado vs. 1 1 1 1 1 1 1 1 (dígitos llevados) 1 ← 1 ← lleva el 1 hasta que esté un dígito más allá de la "cadena" a continuación 1 1 1 0 1 1 1 1 1 01 1 101 1 1 1 10 tacha la "cadena",+ 1 0 1 0 1 1 0 0 1 1 + 1 010 1 1 0 011 y tacha el dígito que se le agregó——————————————————————— ———————————————————————= 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1
La fila superior muestra los bits de acarreo utilizados. En lugar del acarreo estándar de una columna a la siguiente, se puede agregar el "1" de orden más bajo con un "1" en el valor posicional correspondiente debajo y se puede llevar un "1" a un dígito más allá del final de la columna. serie. Los números "usados" se deben tachar, ya que ya están sumados. También se pueden cancelar otras cuerdas largas utilizando la misma técnica. Luego, simplemente suma los dígitos restantes normalmente. Procediendo de esta manera se obtiene la respuesta final de 1 1 0 0 1 1 1 1 0 0 0 1 2 (1649 10 ). En nuestro ejemplo simple que utiliza números pequeños, el método de acarreo tradicional requirió ocho operaciones de acarreo, sin embargo, el método de acarreo largo requirió solo dos, lo que representa una reducción sustancial de esfuerzo.
La tabla de suma binaria es similar, pero no igual, a la tabla de verdad de la operación de disyunción lógica . La diferencia es que , mientras .
La resta funciona prácticamente de la misma manera:
Restar un dígito "1" de un dígito "0" produce el dígito "1", mientras que 1 deberá restarse de la siguiente columna. Esto se conoce como endeudamiento . El principio es el mismo que para el transporte. Cuando el resultado de una resta es menor que 0, el menor valor posible de un dígito, el procedimiento consiste en "tomar prestado" el déficit dividido por la base (es decir, 10/10) de la izquierda, restándolo del siguiente posicional valor.
* * * * (las columnas destacadas están tomadas de) 1 1 0 1 1 1 0− 1 0 1 1 1----------------= 1 0 1 0 1 1 1
* (las columnas destacadas están tomadas de) 1 0 1 1 1 1 1– 1 0 1 0 1 1----------------= 0 1 1 0 1 0 0
Restar un número positivo equivale a sumar un número negativo de igual valor absoluto . Las computadoras utilizan representaciones de números con signo para manejar números negativos, más comúnmente la notación en complemento a dos . Tales representaciones eliminan la necesidad de una operación de "resta" separada. Usando la notación en complemento a dos, la resta se puede resumir mediante la siguiente fórmula:
La multiplicación en binario es similar a su contraparte decimal. Dos números A y B se pueden multiplicar por productos parciales: para cada dígito en B , el producto de ese dígito en A se calcula y se escribe en una nueva línea, desplazada hacia la izquierda para que su dígito más a la derecha se alinee con el dígito en B que estaba usado. La suma de todos estos productos parciales da el resultado final.
Dado que sólo hay dos dígitos en binario, sólo hay dos resultados posibles de cada multiplicación parcial:
Por ejemplo, los números binarios 1011 y 1010 se multiplican de la siguiente manera:
1 0 1 1 ( A ) × 1 0 1 0 ( segundo ) --------- 0 0 0 0 ← Corresponde al 'cero' más a la derecha en B + 1 0 1 1 ← Corresponde al siguiente 'uno' en B + 0 0 0 0 + 1 0 1 1 --------------- = 1 1 0 1 1 1 0
Los números binarios también se pueden multiplicar con bits después de un punto binario :
1 0 1 . 1 0 1 A (5,625 en decimal) × 1 1 0 . 0 1 B (6,25 en decimal) ------------------- 1 . 0 1 1 0 1 ← Corresponde a un 'uno' en B + 0 0 . 0 0 0 0 ← Corresponde a un 'cero' en B + 0 0 0 . 0 0 0 + 1 0 1 1 . 0 1 + 1 0 1 1 0 . 1 --------------------- = 1 0 0 0 1 1 . 0 0 1 0 1 (35,15625 en decimal)
Véase también el algoritmo de multiplicación de Booth .
La tabla de multiplicar binaria es la misma que la tabla de verdad de la operación de conjunción lógica .
La división larga en binario es nuevamente similar a su contraparte decimal.
En el siguiente ejemplo, el divisor es 101 2 o 5 en decimal, mientras que el dividendo es 11011 2 o 27 en decimal. El procedimiento es el mismo que el de la división larga decimal ; aquí, el divisor 101 2 entra una vez en los primeros tres dígitos 110 2 del dividendo, por lo que se escribe un "1" en la línea superior. Este resultado se multiplica por el divisor y se resta de los tres primeros dígitos del dividendo; se incluye el siguiente dígito (un "1") para obtener una nueva secuencia de tres dígitos:
1 ___________1 0 1 ) 1 1 0 1 1 − 1 0 1 ----- 0 0 1
Luego se repite el procedimiento con la nueva secuencia, continuando hasta agotar los dígitos del dividendo:
1 0 1 ___________1 0 1 ) 1 1 0 1 1 − 1 0 1 ----- 1 1 1 − 1 0 1 ----- 0 1 0
Así, el cociente de 11011 2 dividido por 101 2 es 101 2 , como se muestra en la línea superior, mientras que el resto, que se muestra en la línea inferior, es 10 2 . En decimal, esto corresponde al hecho de que 27 dividido por 5 es 5, con un resto de 2.
Además de la división larga, también se puede idear el procedimiento de manera que permita restar en exceso del resto parcial en cada iteración, lo que conduciría a métodos alternativos que son menos sistemáticos, pero como resultado más flexibles.
El proceso de sacar una raíz cuadrada binaria dígito a dígito es el mismo que para una raíz cuadrada decimal y se explica aquí . Un ejemplo es:
1 0 0 1 --------- √ 1010001 1 --------- 101 01 0 -------- 1001 100 0 -------- 10001 10001 10001 ------- 0
Aunque no están directamente relacionados con la interpretación numérica de los símbolos binarios, las secuencias de bits pueden manipularse utilizando operadores lógicos booleanos . Cuando una cadena de símbolos binarios se manipula de esta manera, se denomina operación bit a bit ; los operadores lógicos AND , OR y XOR se pueden realizar en los bits correspondientes en dos números binarios proporcionados como entrada. La operación lógica NOT se puede realizar en bits individuales en un único número binario proporcionado como entrada. A veces, estas operaciones pueden utilizarse como atajos aritméticos y también pueden tener otros beneficios computacionales. Por ejemplo, un desplazamiento aritmético hacia la izquierda de un número binario es equivalente a la multiplicación por una potencia (positiva, integral) de 2.
Para convertir de un entero de base 10 a su equivalente de base 2 (binario), el número se divide por dos . El resto es la parte menos significativa . El cociente se vuelve a dividir por dos; su resto se convierte en el siguiente bit menos significativo. Este proceso se repite hasta alcanzar un cociente de uno. La secuencia de restos (incluido el cociente final de uno) forma el valor binario, ya que cada resto debe ser cero o uno al dividir por dos. Por ejemplo, (357) 10 se expresa como (101100101) 2. [37]
La conversión de base 2 a base 10 simplemente invierte el algoritmo anterior. Los bits del número binario se utilizan uno por uno, comenzando con el bit más significativo (el más a la izquierda). Comenzando con el valor 0, el valor anterior se duplica y luego se agrega el siguiente bit para producir el siguiente valor. Esto se puede organizar en una tabla de varias columnas. Por ejemplo, para convertir 10010101101 2 a decimal:
El resultado es 1197 10 . El primer valor anterior de 0 es simplemente un valor decimal inicial. Este método es una aplicación del esquema de Horner .
Las partes fraccionarias de un número se convierten con métodos similares. Nuevamente se basan en la equivalencia de cambiar con duplicar o reducir a la mitad.
En un número binario fraccionario como 0.11010110101 2 , el primer dígito es , el segundo , etc. Entonces, si hay un 1 en el primer lugar después del decimal, entonces el número es al menos , y viceversa. Duplicar ese número es al menos 1. Esto sugiere el algoritmo: duplicar repetidamente el número a convertir, registrar si el resultado es al menos 1 y luego desechar la parte entera.
Por ejemplo, en binario, es:
Por tanto, la fracción decimal periódica 0, 3 ... es equivalente a la fracción binaria periódica 0, 01 ....
O por ejemplo, 0,1 10 , en binario, es:
Esta también es una fracción binaria repetida 0.0 0011 .... Puede resultar sorprendente que las fracciones decimales terminales puedan tener expansiones repetidas en binario. Es por ello que muchos se sorprenden al descubrir que 1/10 +… + 1/10 (suma de 10 números) difiere de 1 en la aritmética binaria de coma flotante . De hecho, las únicas fracciones binarias con expansiones terminales tienen la forma de un número entero dividido por una potencia de 2, lo cual no es 1/10.
La conversión final es de fracciones binarias a decimales. La única dificultad surge con la repetición de fracciones, pero por lo demás, el método consiste en convertir la fracción en un número entero, convertirla como se indicó anteriormente y luego dividirla por la potencia apropiada de dos en la base decimal. Por ejemplo:
Otra forma de convertir de binario a decimal, a menudo más rápida para una persona familiarizada con hexadecimal , es hacerlo indirectamente: primero convirtiendo ( en binario) a ( en hexadecimal) y luego convirtiendo ( en hexadecimal) a ( en decimal).
Para números muy grandes, estos métodos simples son ineficientes porque realizan una gran cantidad de multiplicaciones o divisiones donde un operando es muy grande. Un algoritmo simple de divide y vencerás es más efectivo asintóticamente: dado un número binario, se divide por 10 k , donde k se elige de modo que el cociente sea aproximadamente igual al resto; luego cada una de estas piezas se convierte a decimal y se concatenan las dos . Dado un número decimal, se puede dividir en dos partes de aproximadamente el mismo tamaño, cada una de las cuales se convierte a binario, después de lo cual la primera parte convertida se multiplica por 10 k y se suma a la segunda parte convertida, donde k es el número de dígitos decimales en la segunda pieza menos significativa antes de la conversión.
El binario se puede convertir hacia y desde hexadecimal más fácilmente. Esto se debe a que la base del sistema hexadecimal (16) es una potencia de la base del sistema binario (2). Más específicamente, 16 = 2 4 , por lo que se necesitan cuatro dígitos en binario para representar un dígito en hexadecimal, como se muestra en la tabla adyacente.
Para convertir un número hexadecimal a su equivalente binario, simplemente sustituye los dígitos binarios correspondientes:
Para convertir un número binario a su equivalente hexadecimal, divídalo en grupos de cuatro bits. Si el número de bits no es múltiplo de cuatro, simplemente inserte 0 bits adicionales a la izquierda (lo que se denomina relleno ). Por ejemplo:
Para convertir un número hexadecimal en su equivalente decimal, multiplica el equivalente decimal de cada dígito hexadecimal por la potencia correspondiente de 16 y suma los valores resultantes:
El binario también se convierte fácilmente al sistema numérico octal , ya que el octal usa una base de 8, que es una potencia de dos (es decir, 2 3 , por lo que se necesitan exactamente tres dígitos binarios para representar un dígito octal). La correspondencia entre números octales y binarios es la misma que para los primeros ocho dígitos hexadecimales en la tabla anterior. El binario 000 equivale al dígito octal 0, el binario 111 equivale al 7 octal, y así sucesivamente.
La conversión de octal a binario se realiza de la misma manera que para hexadecimal :
Y de binario a octal:
Y de octal a decimal:
Los números no enteros se pueden representar mediante el uso de potencias negativas, que se separan de los otros dígitos mediante un punto de base (llamado punto decimal en el sistema decimal). Por ejemplo, el número binario 11.01 2 significa:
Para un total de 3,25 decimales.
Todos los números racionales diádicos tienen un número binario terminal : la representación binaria tiene un número finito de términos después del punto de la base. Otros números racionales tienen representación binaria, pero en lugar de terminar, se repiten , con una secuencia finita de dígitos que se repite indefinidamente. Por ejemplo
El fenómeno de que la representación binaria de cualquier racional sea terminante o recurrente también ocurre en otros sistemas numéricos basados en bases. Véase, por ejemplo, la explicación en decimal . Otra similitud es la existencia de representaciones alternativas para cualquier representación terminal, basándose en el hecho de que 0.111111... es la suma de la serie geométrica 2 −1 + 2 −2 + 2 −3 +... que es 1.
Los números binarios que no terminan ni se repiten representan números irracionales . Por ejemplo,
Se podría decir que [la secuencia binaria Fuxi] es una forma más sensata de representar hexagramas como números binarios... Se desconoce el razonamiento, si lo hay, que informa la secuencia [del Rey Wen].