¿Por qué un sistema informático utiliza binario para representar datos?

Hemos construido computadoras mecánicas, computadoras analógicas, computadoras ternarias y computadoras binarias.

Resulta que podemos construir circuitos que funcionan con voltajes binarios de forma extremadamente económica, confiable y efectiva. Incluso podemos escalar eso a grandes volúmenes.

No puedo pensar en ningún otro producto en el que pueda conducir a la tienda y comprar en el estante una máquina que consiste literalmente en miles de millones de transistores que cooperan todos juntos, por un par de cientos de dólares.

¿Cuántas cosas se te ocurren que puedas comprar en esa cantidad a bajo precio? Granos de sal tal vez.

Pero, ¿qué pasa con los dispositivos altamente interconectados y diferenciados que todos deben funcionar juntos como un sistema?

Las computadoras analógicas simplemente no se ampliaron. Las computadoras mecánicas eran bastante manuales y enfocadas (máquinas sumadoras; telar Jacquard; dispositivos de relojería), o demasiado complejas y poco confiables para ser construidas a cualquier escala razonable fuera del contexto del museo más de 150 años después de haber sido diseñadas.

Las computadoras ternarias eran interesantes, y se construyeron algunas prácticas; sin embargo, la tecnología basada en binarios despegó tan rápido que dejó todo lo demás atrás.

La tecnología binaria es simple en su esencia. Si puede controlar un conmutador electrónicamente, puede construir una puerta lógica simple. Los interruptores ordinarios se prestan a dos estados: encendido o apagado. Por lo tanto, binario viene naturalmente. Para obtener un tercer estado (y un tercer comportamiento basado en ese estado) se requiere una complejidad adicional en la puerta básica.

Originalmente, las puertas se realizaban con relés y tubos de vacío. Pero, luego vino el transistor, y con él la implacable marcha de la Ley de Moore.

Aqui estamos.

Binario no es realmente un lenguaje. No tiene gramática. Binario es simplemente un sistema de conteo, al igual que el conocido sistema de conteo decimal que todos usamos habitualmente. El sistema de conteo binario usa solo dos dígitos: 0 y 1, mientras que el sistema de conteo octal usa 8, el sistema de conteo decimal usa 10 y el sistema hexadecimal usa 16.

En muchos, pero no en todos o incluso en la mayoría de los casos, tiene sentido usar la notación binaria porque se asigna muy de cerca a los componentes electrónicos que componen la computadora, que son de naturaleza binaria. El aspecto binario significa que ingresan / leen, así como generan / escriben uno de solo dos estados, y designamos esos estados como 0 y 1 por conveniencia como una forma de hablar sobre ellos, realizar operaciones aritméticas, etc. Algunos aspectos de El hardware informático, aunque sigue siendo de naturaleza binaria, no son necesariamente cantidades per se sino más bien una combinación de estados, como un registro cuyo contenido describe el estado de algún chip periférico, o incluso el registro de BANDERA / ESTADO de la CPU. Representar ese tipo de datos binarios es casi engañoso en cualquier otra raíz, ya que los bits individuales (dígitos binarios) están ocultos, lo que oculta la información que representan. Sin embargo, en su mayoría, consideramos los datos como números cuantitativos donde se ordenan los bits para darles valores ponderados que nos permiten asignar orden a las palabras binarias.

El componente central de una computadora, o cualquier circuito digital, es una puerta (en la lógica basada en CMOS, una puerta generalmente consta de dos transistores de efecto de campo). Una puerta tiene dos estados estables / determinables: 0 (apagado) o 1 (encendido). Se han hecho intentos para usar estados más activos, pero está comprobado que este enfoque simple de encendido / apagado es la lógica más confiable y más fácil de construir, y esta es también la base de la lógica booleana, que tiene similitudes con la lógica tradicional. Además, si conecta 1000 o más puertas no inversoras juntas en una cadena tipo margarita, si ingresa un 0 o 1, obtendrá un 0 o 1 no ambiguo al final. Eso es confiabilidad, y eso es absolutamente obligatorio.

Una CPU consta de millones de puertas interconectadas que realizan lógica booleana y almacenan estados de puerta, que operan a una frecuencia muy alta, más o menos al unísono, para proporcionar la funcionalidad necesaria. Incluso la aritmética y las comparaciones se realizan fundamentalmente a través de la lógica booleana, una cadena de texto es un conjunto de valores numéricos en formato binario apilados, etc.

Principalmente porque es muy simple distinguir entre solo dos voltajes y la distinción simple es muy estable. Ese fue el impulso principal para no usar decimales con diez niveles de voltajes, que tendrían que ser estables y no desplazarse a lo largo del tiempo o el procesamiento en un circuito o señales de puertas lógicas.

Pero la pregunta es buena, se pensó en un compromiso de costo y estabilidad, usando números quinarios, necesitando menos circuitos y aún voltajes suficientemente distintos para que cada uno de los 5 estados no se desplace y se equivoque.

Además hay más aspectos, recomiendo ver

Una vez que la decisión fue binaria, esta también es la base para poder bajar con escalas tan buenas, por lo que eventualmente el problema de más circuitos desapareció con circuitos integrados y su miniaturización extrema, también posible solo con voltajes y potencia cada vez más bajos. consumo, ya que este circuito solo necesita separar dos voltajes con una tolerancia para que nunca se superpongan.

No solo simplifica el almacenamiento y el procesamiento, sino que la señal de velocidad del reloj de la CPU solo tiene esa naturaleza dual y su generación se vuelve compatible con el resto de los circuitos, al igual que todas las puertas lógicas.

Las computadoras no usan “binario”, usan interruptores que permiten la alimentación (o no) dependiendo de la alimentación de otras fuentes. Eso es literalmente todo lo que hacen. Podría construir una computadora usando solo interruptores de relé mecánico, eso es precisamente lo que es una computadora. Solo usar estos significaría que su teléfono celular necesita una ciudad para contener todos esos interruptores. Entonces, en cambio, una computadora se construye utilizando interruptores que se pueden hacer más pequeños, al principio eran fusibles, luego transistores y luego transistores grabados en placas de circuito y ahora acabamos de fabricarlos cerca del tamaño de unas pocas moléculas cada uno. Pero, todavía están realizando exactamente la misma función, simplemente activando / desactivando.

Ahora, ¿qué puede hacer un humano para tratar de comprender cómo estos interruptores interconectados causan diferentes efectos? ¿Cómo simplificar el diseño de un conjunto de señales de entrada / apagado de la entrada para que realmente resulte en la salida que deseamos? Para comenzar, podemos dejar de pensar en ellos como un montón de señales de encendido / apagado, pero les damos un número a cada uno, es decir, ahora podemos usar las matemáticas en ellos.

Pero, ¿qué sistema de numeración funciona cuando cada elemento solo puede tener uno de dos valores? Definitivamente no decimal, requiere diez valores posibles para cada elemento. ¿Qué pasa con el antiguo sexagesimal mesopotámico? No, eso es aún peor, requiere sesenta valores posibles por separado para cada uno. Por lo tanto, queremos uno que funcione solo en dos, es decir, binario (0s y 1s listados en posiciones relacionadas con potencias de dos).

De hecho, “nosotros” usamos el binario para comprender las computadoras. Las computadoras solo usan el encendido o apagado. Binario es solo nuestra forma de dar sentido más fácilmente a esas señales de potencia.

Pero eso no es todo. Binario es solo otro sistema de numeración. Es decir, es solo otra forma de escribir números o contar. Por ejemplo, si solo tuvieras 2 dedos, ¿cómo contarías con ellos? No contarías en decenas, contarías en dos. Lo mismo con el binario, todavía funciona exactamente en el mismo patrón que el decimal. Es decir, una vez que un dígito ha agotado todos los valores posibles, agregue un dígito adicional para mostrar que ahora está trabajando en una potencia del sistema base uno más alto.

Por ejemplo, una vez que llegue a 9 en decimal, el siguiente valor es 10 ^ 1 * valor de dígito. Entonces es (10 ^ 1 * 1) + 0 = 10. ¿Eso ordena 10 a 19, después de eso? (10 ^ 1 * 2do dígito) + 1er dígito …

En binario, el 10 cambia a un 2 en su lugar. Eso es todo lo que es diferente. Es decir (el prefijo b significa binario, más en decimal):

b0 = (2 ^ 0 * 0) = 0
b1 = (2 ^ 0 * 1) = 1
b10 = (2 ^ 1 * 1) + (2 ^ 0 * 0) = 2
b11 = (2 ^ 1 * 1) + (2 ^ 0 * 1) = 3
b100 = (2 ^ 2 * 1) + (2 ^ 1 * 0) + (2 ^ 0 * 0) = 4

b1010 = (2 ^ 3 * 1) + (2 ^ 2 * 0) + (2 ^ 1 * 1) + (2 ^ 0 * 0) = 10
b1011 = (2 ^ 3 * 1) + (2 ^ 2 * 0) + (2 ^ 1 * 1) + (2 ^ 0 * 1) = 11
b1100 = (2 ^ 3 * 1) + (2 ^ 2 * 1) + (2 ^ 1 * 0) + (2 ^ 0 * 0) = 12
b1101 = (2 ^ 3 * 1) + (2 ^ 2 * 1) + (2 ^ 1 * 0) + (2 ^ 0 * 1) = 13
b1110 = (2 ^ 3 * 1) + (2 ^ 2 * 1) + (2 ^ 1 * 1) + (2 ^ 0 * 0) = 14
b1111 = (2 ^ 3 * 1) + (2 ^ 2 * 1) + (2 ^ 1 * 1) + (2 ^ 0 * 1) = 15
b10000 = (2 ^ 4 * 1) + (2 ^ 3 * 0) + (2 ^ 2 * 0) + (2 ^ 1 * 0) + (2 ^ 0 * 0) = 16

Y a partir de esto, se pueden hacer las mismas matemáticas que estamos acostumbrados a hacer en decimal. Por lo tanto, ahora podemos usar esas señales de encendido / apagado para calcular realmente las cosas. Es decir, el propósito exacto de las “computadoras” originales: reemplazar las computadoras manuales (humanos) que simplemente hicieron muchas sumas.

La electricidad está alimentando las placas de hoy que componen una computadora, y esas placas (desafortunadamente) solo pueden entender: encendido, apagado. Creo que también será mucho más simple hacer el cálculo en binario, por lo tanto, se elige el sistema. Binario también indicó la base misma de los valores lógicos: verdadero y falso. En resumen, es una coincidencia agradable de casi todos los aspectos imaginables para el ser humano moderno, haber usado el binario al hablar con las máquinas.

Porque es más fácil y menos propenso a errores.

Por lo general, usaríamos entre 0 y 5 voltios como señales hacia las puertas.

¿Podríamos definir algo como 0V es un 0, 1V es un 1, 2V es un 2, 3V es un 3, y así sucesivamente?

¡Por supuesto que podríamos! Eso haría una representación de base 6.

¿Por qué no lo hacemos entonces?

Bueno, en los sistemas eléctricos y electrónicos hay mucho ruido, hay corrientes inducidas de las partes circundantes. Si su cable es lo suficientemente largo, ese 1V podría llegar hasta 0.5

Entonces, ¿es un 0 o 1?

De hecho, no puedes saberlo.

Usamos 0V (GND) para BAJO (0) y 5V para ALTO (1). De esa manera, incluso si hay ruido, incluso si el voltaje baja a 3.5V o hasta 1.5V, todavía sabemos si fue un 0 o un 1.

Hubo intentos de crear sistemas ternarios y superiores, pero fueron abandonados (excepto algunos, casos muy raros)

Binario es confiable. Es lo suficientemente rápido para todos los efectos.

Sí, los programadores podrían usar otro sistema, Malbolge se ejecutó en una VM con un sistema base 3. Ahora, Malbolge eligió 3 porque es más difícil de entender, pero muestra que es ciertamente posible.

¿Pero tendría sentido tener algo más? En realidad no, el binario encaja bien con los transistores que tienen estados de “encendido” y “apagado”, y cualquier cosa puede convertirse en binario porque es muy simple y porque todo es información de una forma u otra. Además, cualquier otra cosa no tiene muchos más beneficios de todos modos.

En pocas palabras, la confiabilidad y la previsibilidad del hardware utilizado para ejecutar las operaciones. Los sistemas digitales donde el voltaje por encima de un cierto punto representa un uno y por debajo de un cierto punto representa un cero son eficientes para crear, utilizando transistores como interruptores, y los resultados serán los mismos cada vez.

En el pasado ha habido computadoras analógicas, tanto mecánicas como eléctricas, pero las mecánicas eran voluminosas, mientras que los circuitos eléctricos analógicos pueden derivar con la temperatura y otros factores, y ambos requieren un mantenimiento significativo.

Los datos binarios son buenos para operaciones lógicas como YES, NOT, OR y AND. Además, NOT y YES son buenos para representar números binarios “0” y “1”. Las operaciones lógicas son buenas para los cálculos. El XOR: (A Y NO B) O (NO A Y B) es el medio sumador. El A y B es el llevar. Tan fácil de construir computadoras a partir de circuitos lógicos simples. Y fácil de usar los mismos números binarios para la salida de datos. Por ejemplo: 65 = 01000001 = “A”. Puede ver en la siguiente lista generada que “A” es realmente 65 o binario 01000001. Por supuesto, en el código ASCII generalmente utilizado. También hay otros códigos …

Simplicidad electrónica.

Una sola puerta NAND de entrada múltiple puede ocupar un transistor (bastante complejo).

Un flip-flop (almacenamiento para un solo bit) se puede hacer desde dos transistores. Por lo general, se agregan transistores, pero son para el control: establecer / restablecer el valor o actualizar el valor.

Mantener la electrónica simple ayuda a acelerarla.

En los sistemas físicos es más fácil representar el estado binario (activar / desactivar) que el estado graduado (un rango de valores). A nivel atómico se reduce a la presencia de átomos o electrones, o la falta de ellos, gobernada por la mecánica cuántica.

Hasta el nivel más pequeño, los sistemas informáticos hacen uso de puertas, flip / flops y registros.

El uso del sistema binario (0s y 1s) facilita la representación de la lógica ( alta y baja , encendido y apagado , y no ) ya que 1 = Verdadero y 0 = Falso .

Los lenguajes humanos entendibles ( palabras , números y casi cualquier notación) se pueden representar en binario .

Espero que esto ayude.

En las primeras épocas de computación se eligió el binario porque era el más distinguido electrónicamente. Por ejemplo, un condensador no puede almacenar voltaje o 1 voltio, seguro que puede usar un trinario, pero luego debe poder distinguir entre 0 V, .5 V y 1 V. Cuanto más alto sea el sistema base, más precisa será tiene que estar en almacenamiento y lectura de voltajes. Binario fue el más fácil.

La Base 5 tenía algunos compromisos prometedores, y los niveles de voltaje de 5 son prácticos en la tecnología moderna, pero el costo de cambiar cualquier computación considerable a la base 5 superaría las pequeñas ventajas.

En los viejos tiempos teníamos computadoras analógicas. Estos utilizaron números del cero al nueve (los voltajes dicen de un voltio a nueve voltios) y funcionaron bastante bien.

Los usé en sistemas de radar militar. El problema es que si el voltaje de entrada es un poco alto o un poco bajo, entonces los números tienden a ser menos precisos. Por ejemplo, una reducción de cinco a cinco voltios para decir 4.5 voltios porque es difícil de interpretar. El uso de datos binarios es más preciso, ya que un cero podría ser cero voltios y uno de 3.3 o 5 voltios. ,

Utilizó binario debido a encendido y apagado, encendido y apagado puede representarse con 1 o 0. Esta es la clave porque puede enviar estos 1 y 0 a puertas lógicas y las encienden y apagan dependiendo de qué 1 y 0 (bits) ir a donde.

Porque On / Off es la transición de estado más simple para circuitos y dispositivos eléctricos. Simple significa relativamente barato y rápido, al menos hasta que tengamos computadoras cuánticas (será más rápido en muchas cosas, no estoy seguro de cuánto costarán)

Confiabilidad. En los primeros días de la informática, algunas computadoras eran decimales. Sin embargo, rápidamente se hizo evidente que las computadoras binarias simplemente funcionaban mejor.