¿Qué es binario y por qué las computadoras lo usan?
Las computadoras no entienden las palabras o los números como lo hacen los humanos. El software moderno le permite al usuario final ignorarlo, pero en los niveles más bajos de su computadora, todo está representado por una señal eléctrica binaria que se registra en uno de dos estados: encendido o apagado. Para dar sentido a datos complicados, su computadora tiene que codificarlos en binario.
Binario es un sistema numérico base 2. Base 2 significa que solo hay dos dígitos, 1 y 0, que corresponden a los estados de encendido y apagado que su computadora puede entender. Probablemente estés familiarizado con la base 10, el sistema decimal. El decimal usa diez dígitos que van de 0 a 9, y luego se ajusta para formar números de dos dígitos, cada dígito vale diez veces más que el anterior (1, 10, 100, etc.). Binario es similar, con cada dígito vale dos veces más que el anterior.
Contando en binario
En binario, el primer dígito vale 1 en decimal. El segundo dígito vale 2, el tercero vale 4, el cuarto vale 8 y así se duplica cada vez. Al sumar todo esto, obtendrás el número en decimal. Asi que,
1111 (en binario) = 8 + 4 + 2 + 1 = 15 (en decimal)
Contabilizando 0, esto nos da 16 valores posibles para cuatro bits binarios. Mueve a 8 bits, y tienes 256 valores posibles. Esto ocupa mucho más espacio para representar, ya que cuatro dígitos en decimal nos dan 10,000 valores posibles. Puede parecer que estamos pasando por todo este problema de reinventar nuestro sistema de conteo solo para hacerlo más complicado, pero las computadoras entienden el binario mucho mejor que el decimal. Claro, el binario ocupa más espacio, pero el hardware nos frena. 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 formato hexadecimal, los programadores lo utilizan para representar direcciones binarias en un formato legible para las personas al escribir código. Esto se debe a que dos dígitos del hexadecimal pueden representar un byte completo, ocho dígitos en binario. 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 binario?
La respuesta corta: el hardware y las leyes de la física. Cada número en su computadora es una señal eléctrica, y en los primeros días de la computación, 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 una carga negativa y un estado "apagado" representado por una carga positiva. Para aquellos que no están seguros de por qué el "apagado" se representa con una carga positiva, es porque los electrones tienen una carga negativa; más electrones significan más corriente con una carga negativa.
Por lo tanto, las primeras computadoras del tamaño de una sala utilizaban binarios para construir sus sistemas, y aunque usaban hardware mucho más antiguo y voluminoso, manteníamos los mismos principios fundamentales. Las computadoras modernas utilizan lo que se conoce como un transistor para realizar cálculos con binarios. Aquí hay un diagrama de cómo se ve un transistor de efecto de campo (FET):
Esencialmente, solo permite que la corriente fluya desde la fuente al drenaje si hay una corriente en la compuerta. Esto forma un interruptor binario. Los fabricantes pueden construir estos transistores increíblemente pequeños, hasta los 5 nanómetros, o aproximadamente el tamaño de dos cadenas de ADN. Así es como operan las CPU modernas, e incluso pueden sufrir problemas al diferenciar entre los 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é sólo Base 2??
Así que puedes estar pensando, “¿por qué solo 0 y 1? ¿No podría simplemente agregar otro dígito? "Si bien parte de esto se reduce 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 estados como" en un poco "y" en un montón ".
El problema aquí es que si quisiera usar múltiples niveles de voltaje, necesitaría una forma de realizar cálculos fácilmente con ellos, y el hardware para eso no es viable como un reemplazo para la computación binaria. De hecho, existe; se llama computadora ternaria y ha existido desde la década de 1950, pero es casi donde el desarrollo se detuvo. La lógica ternaria es mucho más eficiente que la binaria, pero hasta el momento, nadie tiene un reemplazo efectivo para el transistor binario, o al menos no se ha trabajado en el desarrollo de las mismas escalas que las binarias..
La razón por la que no podemos usar la lógica ternaria se debe a la forma en que los transistores se apilan en una computadora, algo que se llama "puertas"-y cómo se usan para realizar matemáticas. Las puertas toman dos entradas, realizan una operación en ellas y devuelven una salida.
Esto nos lleva a la respuesta larga: las matemáticas binarias son mucho más fáciles para una computadora que cualquier otra cosa. La lógica booleana se asigna fácilmente a sistemas binarios, con True y False representados por encendido y apagado. Las puertas de su computadora operan con lógica booleana: toman dos entradas y realizan una operación en ellas como AND, OR, XOR, etc. Dos entradas son fáciles de gestionar. Si tuviera que representar gráficamente las respuestas para cada entrada posible, tendría lo que se conoce como una tabla de verdad:
Una tabla de verdad binaria que opera con lógica booleana tendrá cuatro salidas posibles para cada operación fundamental. Pero como 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 escalado se convierte en un problema porque mientras ternario es más eficiente, también es exponencialmente más complejo.
¿Quién sabe? En el futuro, podríamos comenzar a ver cómo las computadoras ternarias se convierten en una cosa, ya que empujamos los límites de los binarios a un nivel molecular. Por ahora, sin embargo, el mundo continuará ejecutándose en binario.
Créditos de las imágenes: spainter_vfx / Shutterstock, Wikipedia, Wikipedia, Wikipedia, Wikipedia