¿Por qué las computadoras usan el sistema de números binarios (0,1)? ¿Por qué no usan el Sistema de números ternarios (0,1,2) o cualquier otro sistema de números?
¿Por qué las computadoras usan el sistema de números binarios (0,1)? ¿Por qué no usan el Sistema de números ternarios (0,1,2) o cualquier otro sistema de números?
Respuestas:
Como estamos en Informática, responderé de esta manera: no lo hacen.
¿Qué queremos decir con "computadora"? Hay muchas definiciones, pero en informática como ciencia, la más común es la máquina de Turing.
Una máquina de turing se define por varios aspectos: un conjunto de estados, una tabla de transición, un conjunto de detención e importante para nuestra discusión, un alfabeto. Este alfabeto se refiere a los símbolos que la máquina puede leer como entrada y que puede escribir en su cinta. (Podría tener diferentes alfabetos de entrada y de cinta, pero no nos preocupemos por eso por ahora).
Entonces, puedo hacer una máquina de Turing con el alfabeto de entrada , o { a , b } , o { 0 , 1 , 2 } , o { ↑ , ↓ } . No importa. El hecho es que puedo usar cualquier alfabeto que elija para codificar datos.
Entonces, puedo decir que es 9, o puedo decir que ↑ ↑ ↑ ↓ ↑ ↑ ↓ es 9. No importa, ya que son solo símbolos que podemos distinguir.
El truco es que binario es suficiente. Cualquier secuencia de bits se puede interpretar como un número, por lo que puede convertir de binario a cualquier otro sistema y viceversa.
Pero resulta que unario es suficiente también. Puede codificar 9 como 111111111. Esto no es particularmente eficiente, pero tiene la misma potencia de cálculo.
Las cosas se ponen aún más locas cuando se miran modelos alternativos de computación, como el cálculo Lambda. Aquí puede ver los números como funciones. De hecho, puede ver todo como funciones. Las cosas están codificadas no como bits, 0s y 1s, sino como funciones matemáticas cerradas sin estado mutable. Vea los números de la Iglesia para saber cómo puede hacer números de esta manera.
El punto es que, 0s y 1s es un problema completamente específico del hardware, y la elección es arbitraria. La codificación que está utilizando no es particularmente relevante para la informática, fuera de unos pocos subcampos como los sistemas operativos o las redes.
Algunas otras cosas a considerar:
Parte de la razón para usar un sistema de números binarios es que es el sistema de números de base más baja que puede representar números en espacio logarítmico, en lugar de lineal. Para distinguir de manera única entre números diferentes en unario, la longitud promedio de las representaciones debe ser proporcional a al menos n , ya que solo hay una cadena de longitud k donde k < n ; 1 + 1 + . . . + 1 = n . Para distinguir de manera única entre n números diferentes en binario, la longitud promedio de las representaciones debe ser proporcional a al menos log 2 , ya que hay 2 k números binarios de longitud k ; 1 + 2 + . . . + n + 1. Elegir una base más grande mejora el requisito de espacio por un factor constante; la base 10 le dannúmeros con una longitud de representación promedio delog10n, que eslog102≈0.3veces la longitud promedio de una representación de base dos para todos losn. La diferencia entre binario y unario es mucho mayor; de hecho, es una función den. Obtienes mucho eligiendo binario sobre unario; obtienes mucho menos al elegir una base más alta, en comparación.
Hay algo de verdad en la idea de que es más fácil implementar la lógica digital si solo tenemos que distinguir dos estados. Las señales eléctricas son analógicas y, como tales, pueden interpretarse para representar tantos estados discretos como desee ... pero necesita un hardware más preciso (por lo tanto, costoso y meticuloso) para distinguir de manera confiable más estados en el mismo rango. Esto sugiere elegir una base lo más baja posible.
Otra consideración potencialmente importante es que, lógicamente, se ha entendido que la lógica involucra dos valores distintos: y f a l s e . Ahora, tenemos lógicas más sofisticadas que esta, pero muchas matemáticas y ciencias aún se basan en nociones bastante fundamentales. Cuando considera que las computadoras se usan para calcular, y que la lógica es importante para el cálculo, sugiere tener un buen soporte para al menos dos estados distintos ... pero la lógica realmente no requiere más que eso.
Una de las principales razones por las que la mayoría de los circuitos de computadora usan dos estados es que la cantidad de circuitos necesaria para distinguir entre n niveles de voltaje diferentes es aproximadamente proporcional a n -1. En consecuencia, tener tres estados discernibles requeriría el doble de circuitos por señal, y tener cuatro requeriría tres veces más. Triplicar la cantidad de circuitos y solo duplicar la cantidad de información representaría una pérdida de eficiencia.
Tenga en cuenta que hay algunos lugares en las computadoras donde la información se almacena o se comunica utilizando más de dos estados por elemento. En una matriz de memoria flash, cientos o miles de celdas de memoria pueden ser atendidas por un conjunto de circuitos de detección de nivel. El uso de cuatro niveles por celda en lugar de dos cuando se almacena una cierta cantidad de información podría ser más del triple del tamaño de los circuitos de detección de nivel, pero reduciría a la mitad el número de celdas de memoria requeridas. Al comunicarse a través de Ethernet de 100 bases T o más rápido, el costo de los circuitos necesarios para detectar múltiples niveles de señal en el cable probablemente se verá reducido por el costo de tener que usar un cable con más cables o usar cables que puedan manejar más transiciones de señal por segundo sin un nivel inaceptable de distorsión.
Existen computadoras cuánticas en los laboratorios de investigación que usan q-bit como la unidad básica de información que puede ser tanto 0 como 1 simultáneamente.
http://en.wikipedia.org/wiki/Quantum_computer
También se han construido computadoras cuánticas ternarias según esta referencia http://en.wikipedia.org/wiki/Ternary_computer
Por lo tanto, es posible construir dispositivos informáticos alternativos que no dependen del sistema de números binarios. Los sistemas de fibra óptica, por ejemplo, usan 0 para las polarizaciones ortoganales oscuras y dos diferentes de luz como 1 y -1.
La razón por la que menciono estas cosas es porque quiero mostrar que aunque los números binarios son suficientes para la computación, existen sistemas numéricos alternativos que pueden usarse para la computación.
El sistema de números binarios es bueno en este sentido, podemos codificar todos los enteros mediante el uso de la representación radix de números. http: // en.wikipedia.org/wiki/Radix Estos valores pueden representar el código ASCII A = 0x41 = 01000001, o el valor podría representar una instrucción de máquina nop = 0x90 = 0x10010000.
En el corazón de las computadoras digitales, la potencia de procesamiento es un transistor, que funciona como un interruptor. Al aumentar la corriente en la "puerta" del interruptor, permite que la corriente fluya entre el "colector" y el "emisor": el interruptor se enciende. El transistor estará diseñado para funcionar en uno de los dos modos: completamente encendido o completamente apagado ('saturado'), con una división clara de cuáles son esos estados. El transistor puede cambiar entre los dos estados rápidamente, permanecerá en el estado con errores muy limitados.
Este circuito forma la base para dispositivos lógicos, tales como AND, NAND, OR, XOR y otras funciones. La función NAND es la más básica de los bloques de construcción. Estos dispositivos lógicos se ensamblan para proporcionar procesadores que permanecen en un estado predecible, y muchos transistores se pueden empaquetar en un espacio pequeño para proporcionar la funcionalidad necesaria.
Un transistor puede gestionar estados múltiples o variables, pero cuando funcionan de esa manera no producen computadoras "digitales" convencionales: no tienden a permanecer en un estado predecible y son propensos a interferencias, saturación, osculación, etc. tienen aplicaciones limitadas en términos de habilidades computacionales. Los amplificadores operacionales podrían considerarse computadoras analógicas.
Solo usamos binario (1,0) porque actualmente no tenemos la tecnología para crear "interruptores" que puedan contener de manera confiable más de dos estados posibles. (Las computadoras cuánticas no están exactamente a la venta en este momento). El sistema binario se eligió solo porque es bastante fácil distinguir la presencia de una corriente eléctrica de una ausencia de corriente eléctrica, especialmente cuando se trabaja con billones de tales conexiones. Y usando cualquier otra base de números en este sistema ridículo, porque el sistema necesitaría convertir constantemente entre ellos. Eso es todo al respecto.