Sistema binario, representación

Las computadoras no entienden las palabras o los números como lo hacen los humanos. El software moderno le permite al usuario final ignorar esto, pero en los niveles más bajos de tu computadora, todo se representa mediante una señal eléctrica binaria que se registra en uno de dos estados: encendido o apagado. Para dar sentido a los datos complicados, tu computadora debe codificarlos en formato binario.

Los binarios son un sistema de número base 2. La Base 2 significa que solo hay dos dígitos, 1 y 0que corresponden a los estados de encendido y apagado que tu computadora puede entender. Probablemente estés familiarizado con la base 10: el sistema decimal. El decimal usa diez dígitos que van del 0 al 9 y luego se usa para formar números de dos dígitos, y cada dígito vale diez veces más que el último (1, 10, 100, etc.). Los binarios son similares, con cada dígito vale dos veces más que el anterior.

En binarios, el primer dígito vale 1 en decimal. El segundo dígito vale 2, el tercero vale 4, el cuarto vale 8, y así sucesivamente, doblando su valor cada vez. Sumar todo esto te da el número en decimal. Así que:

1111 (en binario) = 8 + 4 + 2 + 1 = 15 (en decimal)

Contabilizando 0, esto nos da 16 valores posibles para cuatro bits binarios. Mover a 8 bits, y tiene 256 valores posibles. Esto ocupa mucho más espacio para representar, ya que cuatro dígitos en decimales nos dan 10,000 valores posibles. Puede parecer que estamos pasando por todo este problema de reinventar nuestro sistema de conteo para hacerlo más complicado, pero las computadoras entienden el binario mucho mejor de lo que entienden el decimal. Claro, el binario ocupa más espacio, pero el hardware nos detiene. Y para algunas cosas, como el procesamiento lógico, el binario es mejor que el decimal.

Hay otro sistema base que también se usa en programación: hexadecimal. Aunque las computadoras no se ejecutan en hexadecimal, los programadores lo usan para representar direcciones binarias en un formato legible para las personas al escribir el código. Esto se debe a que dos dígitos de hexadecimal pueden representar un byte completo, ocho dígitos en binario. El hexadecimal usa 0-9 como decimal, y también las letras A a F para representar los seis dígitos adicionales.

Entonces, ¿por qué las computadoras usan binarios?

La respuesta breve: hardware y las leyes de la física. Cada número en tu computadora es una señal eléctrica, y en los primeros días de la informática, las señales eléctricas eran mucho más difíciles de medir y controlar con mucha precisión. Tenía más sentido distinguir solo entre un estado “encendido” (representado por carga negativa) y un estado “apagado”, representado por una carga positiva. Para aquellos que no están seguros de por qué el “apagado” está representado por una carga positiva, es porque los electrones tienen una carga negativa: más electrones significan más corriente con una carga negativa.

Entonces, las primeras computadoras del tamaño de las habitaciones usaron binarios para construir sus sistemas, y aunque usaron hardware mucho más antiguo y voluminoso, hemos mantenido los mismos principios fundamentales. Las computadoras modernas usan lo que se conoce como un transistor para realizar cálculos con binario.

Esto forma un interruptor binario. Los fabricantes pueden construir estos transistores increíblemente pequeños, hasta 5 nanómetros, o aproximadamente del tamaño de dos cadenas de ADN. Así es como funcionan los CPU modernos, e incluso pueden sufrir problemas para diferenciar entre estados de encendido y apagado (aunque esto se debe principalmente a su tamaño molecular irreal, estando sujetos a la rareza de la mecánica cuántica).

Pero, ¿por qué solo base 2?

Entonces puedes estar pensando, “¿por qué solo 0 y 1? ¿No podría simplemente agregar otro dígito? “Si bien parte de esto se debe a la tradición de cómo se construyen las computadoras, agregar otro dígito significaría que tendríamos que distinguir entre diferentes niveles de corriente, no solo “apagado” y “encendido” “Pero también dice “un poco” y “mucho”.

El problema aquí es que, si deseas usar múltiples niveles de voltaje, necesitarás una forma de realizar cálculos fácilmente con ellos, y el hardware para eso no es viable como reemplazo de la computación binaria. De hecho, existe. se llama una computadora ternaria, y ha existido desde la década de 1950, pero eso es más o menos donde el desarrollo se detuvo. La lógica ternaria es mucho más eficiente que el binario, pero hasta el momento, nadie tiene un reemplazo eficaz para el transistor binario, o al menos, no se ha trabajado en su desarrollo en las mismas escalas minúsculas como el binario.

La razón por la que no podemos usar la lógica ternaria se reduce a la forma en que los transistores se apilan en una computadora, algo llamado “compuertas”, y cómo se usan para realizar operaciones matemáticas. La compuerta toma dos entradas, realiza una operación en ellas y devuelve una salida.

Esto nos lleva a la respuesta larga: la matemática binaria es mucho más fácil para una computadora que otra cosa. La lógica booleana se correlaciona fácilmente con sistemas binarios, con True y False siendo representados por on y off. Las puertas de tu computadora operan en lógica booleana: toman dos entradas y realizan una operación en ellas, como Y, O, XOR, y así sucesivamente. Dos entradas son fáciles de administrar. Si tuvieras que graficar las respuestas para cada entrada posible, tendrías lo que se conoce como una tabla de verdad:

Una tabla de verdad binaria que opera en lógica booleana tendrá cuatro salidas posibles para cada operación fundamental. Pero debido a que las puertas ternarias toman tres entradas, una tabla de verdad ternaria tendría 9 o más. Mientras que un sistema binario tiene 16 operadores posibles (2 ^ 2 ^ 2), un sistema ternario tendría 19,683 (3 ^ 3 ^ 3). El escalamiento se convierte en un problema porque, aunque ternario es más eficiente, también es exponencialmente más complejo.

Un número binario puede ser representado por cualquier secuencia de bits (dígitos binarios), que a su vez pueden ser representados por cualquier mecanismo capaz de estar en dos estados mutuamente exclusivos. Las secuencias siguientes de símbolos podrían ser interpretadas todas como el mismo valor binario numérico:

1 0 1 0 0 1 1 0 1 0 | – | – – | | – | – x o x o o x x o x o y n y n n y y n y n

El valor numérico representado en cada caso depende del valor asignado a cada símbolo. En un ordenador, los valores numéricos pueden ser representados por dos voltajes diferentes y también se pueden usar polaridades magnéticas sobre un disco magnético. Un “positivo”, “sí”, o “sobre el estado” no es necesariamente el equivalente al valor numérico de uno; esto depende de la arquitectura usada.

De acuerdo con la representación acostumbrada de cifras que usan números árabes, los números binarios comúnmente son escritos usando los símbolos 0 y 1. Cuando son escritos, los números binarios son a menudo subindicados, prefijados o sufijados para indicar su base, o la raíz. Las notaciones siguientes son equivalentes:

  • 100101 binario (declaración explícita de formato)
  • 100101b (un sufijo que indica formato binario)
  • 100101B (un sufijo que indica formato binario)
  • bin 100101 (un prefijo que indica formato binario)
  • 1001012 (un subíndice que indica base 2 (binaria) notación)
  • %100101 (un prefijo que indica formato binario)
  • 0b100101 (un prefijo que indica formato binario, común en lenguajes de programación)

Decimal / Binario

Al igual que hicimos en el artículo dedicado al sistema hexadecimal, vamos a comparar el sistema decimal con el binario.

El sistema decimal es un sistema en base 10 que utiliza 10 caracteres para su representación: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

 El sistema binario es un sistema en base 2 que utiliza 2 caracteres para su representación: 0, 1.

Correspondencia entre decimales y binarios

Como vemos arriba, si en el sistema decimal un dígito puede tener 10 valores diferentes, en el binario solo 2.

Hagamos ahora el desglose de una cifra en sistema decimal, 12 y su correspondiente en binario, 1100.

Si nos fijamos en la cifra del sistema decimal del ejemplo, el primer dígito a la izquierda de la coma de los decimales puede representar 10 valores diferentes en este caso el 2, el siguiente dígito a su izquierda representa el 1 multiplicado por 10 (101), y así continuaría en el caso de que hubiese más dígitos (102, 103, 104, . . ).

Si nos fijamos en la cifra binaria la lógica es la misma, lo que cambia es que son dígitos que solo pueden tomar 2 valores diferentes. El primer y segundo dígito en este caso toman el valor 0, el tercer dígito desde la izquierda toma el 1 que se multiplica por 4 (22). Y el cuarto dígito desde toma el 1 que se multiplica por 8 (23).  En el caso de que la cifra tuviese más dígitos continuaría 24, 25, 26, . .

Hagamos lo mismo ahora con otra cifra binaria, 1101 0111, que en decimal es 215.

Y para terminar vamos a hacer la conversión al revés, de decimal a binario. Para ello tomaremos el número decimal y lo dividiremos entre dos, recuerda que el sistema binario trabaja en base 2, el cociente que obtengamos volveremos a dividirlo entre dos, y así sucesivamente hasta que el cociente nos uno. Una vez que obtengamos el cociente 1 tomaremos al mismo como número mas significativo y todos los restos desde el último al primero consiguiendo así el número binario.

¿Necesitas ayuda? Contactate con los profes