¿Por qué no hicieron que las computadoras entendieran todos los números decimales, no solo dos?

Charles Babbage diseñó algunas de las primeras máquinas Turing Complete antes de que Alan Turing naciera. Estas máquinas son interesantes en eso:

A) Son completamente mecánicos, utilizan engranajes y, a menudo, funcionan con vapor. Habrían estado en la escala de metros incluso para la ALU (Unidad de lógica aritmética).

B) Trabajaron en denary (base 10), en lugar de binario, como usted hizo en su pregunta. Se propuso que algunos dientes tuvieran hasta 50 números decimales.

Si bien estas máquinas solo eran hipotéticas o conceptuales, muchas se documentaron con inmenso detalle sobre su funcionamiento y construcción. Ahora, las máquinas basadas en los diseños de Babbage pueden construirse y mostrarse para computar con éxito, en la base 10.

Las máquinas a menudo se denominan ‘Los motores’, que incluyen tanto el ‘Motor analítico’ como el ‘Motor de diferencia’.

Usted puede leer más aquí:

Los motores | Motor de repollo | Museo de Historia de la Computación

¿Por qué no hicieron que las computadoras entendieran todos los números decimales, no solo dos?

¡Por la misma razón, ‘ellos’ no te hicieron entender todos los idiomas naturales y no solo el inglés!

Pero en el centro de la pregunta hay una creencia errónea de que las computadoras entienden dos números, presumiblemente [matemáticas] 0 [/ matemáticas] y [matemáticas] 1 [/ matemáticas]. Ellos no. Las computadoras digitales son máquinas sofisticadas que hacen uso de dos estados, generalmente electrónicos, que pueden etiquetarse de varias maneras, incluyendo:

  • Encendido apagado
  • Alta baja
  • Verdadero Falso
  • [matemáticas] 0/1 [/ matemáticas]

El aspecto más importante de estos estados es que son diferentes. Los estados en sí no son números, incluso si se mencionan o etiquetan con los dígitos [matemática] 0 [/ matemática] y [matemática] 1 [/ matemática].

El “binario” en “computadora binaria” es una referencia al uso de dos estados distintos. Está relacionado con el “binario” en “número binario”, pero no es lo mismo. Un número binario es un número representado en notación posicional con base (o radix) dos, así como un número decimal familiar es un número representado en notación posicional con base diez. Por lo tanto, el número trece tiene muchas representaciones que incluyen:

  • Binario [matemáticas] 1101 = 2 ^ 3 + 2 ^ 2 + 2 ^ 0 = 8 + 4 + 1 [/ matemáticas]
  • Decimal [matemática] 13 = \ text {diez} +3 [/ matemática]

Los estados en las computadoras se pueden usar para representar muchas cosas diferentes, incluyendo:

  • Números
  • Letras
  • Píxeles
  • Instrucciones de la computadora

Un estado individual se conoce como bit, un acrónimo de dígitos binarios, pero las secuencias de bits casi nunca se interpretan como notación posicional binaria para números. En cambio, las computadoras representan números enteros como secuencias de bits de una manera que facilita las operaciones de la computadora, generalmente el complemento de Dos, pero el complemento de Uno es posible, se ha utilizado Decimal codificado en binario, y el diseñador de la computadora es libre de inventar cualquier codificación que desee números. Los números no enteros generalmente tienen una representación completamente diferente en bits, a menudo como punto flotante estandarizado en estos días bajo IEEE 754.

Del mismo modo, hay diferentes formas de interpretar secuencias de bits como letras (por ejemplo, ASCII, EBCDIC o Unicode), píxeles (por ejemplo, JPEG, GIF o TIFF) o varios códigos de máquina.

La conclusión es que una secuencia de bits no significa nada hasta que es interpretada por el programa de computadora. Lo que nos lleva de vuelta al punto original. Una secuencia de letras como palabras, oraciones y párrafos no significa nada hasta que sea interpretada por alguien que sepa el idioma en que se escribe la secuencia.

‘Ellos’ probablemente lo entrenaron para reconocer varios glifos que representan las 26 letras y varios símbolos utilizados en inglés. A pesar de esta ventaja sobre las computadoras que reconocen solo dos estados, ‘ellos’ aún no lograron hacerte entender todos los idiomas que usan esos glifos, y mucho menos esos otros lenguajes naturales ‘extraños’ que usan otros conjuntos de caracteres.

Sin embargo, lo mejor de las computadoras es que son (bastante cercanas) a las Máquinas Turing universales: puede programarlas para interpretar prácticamente cualquier cosa, incluidas, con toda probabilidad, cosas como los lenguajes naturales. Ciertamente, pueden “comprender” todas las representaciones decimales de los números y manipular esas representaciones mucho más rápido que usted o yo [math] _ {\ ddot \ smallsmile} [/ math]

Si te refieres a la proposición de que las computadoras solo “entienden” 0 y 1, entonces (a) estás equivocado; y (b) hicieron computadoras que “entienden” todos los números decimales.

Primero: a pesar del hecho de que, en un nivel muy fundamental , los componentes de la computadora solo pueden representar 0s y 1s, una computadora es más que cualquier componente individual. Cuando los componentes funcionan en armonía, la computadora en sí misma puede representar más que solo 0 y 1. Después de todo, pregúntele a su computadora qué es 1 + 1. Si preguntara un componente suficientemente fundamental, la respuesta sería 0. Pero su computadora dice que la respuesta es 2.

Segundo, las computadoras viejas eran analógicas, no digitales. Las computadoras analógicas tenían componentes que podían (de una forma u otra) almacenar “directamente” cualquier número decimal, no solo un 0 o 1. Esto viene con varios inconvenientes, y probablemente no estoy familiarizado con todos ellos. Pero uno importante es que cualquier medida es, fundamentalmente, propensa a errores.

Por ejemplo, suponga que su celda de memoria analógica almacena un cierto valor. Se supone que almacena el valor 1. Pero tal vez su valor “real” es 1.0001. Esto puede ser problemático. Una cosa es leer directamente ese valor: tal vez sepa que el componente solo es preciso, digamos, tres decimales. Así que corta cualquier otra cosa cuando lee (es decir, interpreta ) el estado del componente. Pero si pasa ese valor de un lado a otro a otros componentes del sistema, no siempre hay una forma de cortar el error. Los errores pueden acumularse de formas inesperadas y, antes de que se dé cuenta, puede ocasionar problemas reales.

Es más fácil mitigar este fenómeno en una arquitectura binaria, donde solo hay dos estados para un componente en particular. Puede separar esos estados por un margen relativamente amplio.

En realidad, las computadoras entienden la base 10 (decimal). También entienden la base 8 (octal) y la base 16 (hexadecimal) y, como saben, la base 2 (binaria).

Es cierto que los componentes de una computadora (especialmente todos los dispositivos de almacenamiento de datos) funcionan principalmente con la base 2. Esto se debe a que el estado primario de cada componente microscópico de la memoria (RAM, disco duro, almacenamiento óptico, etc.) está ENCENDIDO o OFF, 1 o 0. Cuando hablamos de bytes de almacenamiento, pensamos en ellos como bytes de 8 bits, que pueden escribirse como 256 números diferentes desde 00000000 hasta 11111111.

Pero cuando escribimos programas de computadora, tendemos a dar las instrucciones de la computadora en decimal (a menos que esté codificando en lenguaje de máquina, lo que hace en hexadecimal, donde dos dígitos (0–9, AF, donde A = 10 a F = 15) juntos hacen cualquier número de 00 a FF (0 a 255)).

Entonces, en respuesta a su pregunta, las computadoras funcionan con números decimales, incluso si la computadora necesita un sistema operativo que lo ayude a comprender los números. Nunca tuve uno, pero solía ser que antes de que una computadora pudiera entender la base 10, un programador tenía que INICIAR la computadora con un programa escrito completamente en la base 2. Ahora, esos programas BOOT están en el disco duro de la computadora y se inician automáticamente cada vez que enciende su computadora. Puede pensar que el sistema operativo y otros programas interpretan de decimal a binario y viceversa.

Incluso cuando lee este mensaje en la pantalla, en realidad está leyendo información en algo como base 256 o base 512 o base 1024.

Las computadoras NO tienen cerebro. No, la CPU NO ES EL CEREBRO DE LA COMPUTADORA. Son máquinas sin cerebro. No son lo suficientemente inteligentes como para comprender todos los números. Solo entienden las señales de circuito. Es un terminal de entrada, donde la corriente fluye o no, donde hay diferencia de potencial o no. Comprender Sí y No es mucho más fácil que comprender números. Contrariamente a lo que mucha gente dice, un código escrito algo así como

01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100

También tendrá que ser interpretado. La computadora ni siquiera entenderá este código. Utilizará señales, las activará y desactivará para identificar lo que significa.

Las computadoras sí entienden los números decimales. También entienden números racionales, números imaginarios, cuaterniones y muchas otras cosas que los matemáticos les presentan.

Construyen todas esas cosas a partir de números binarios porque esa es la forma más barata y fácil de hacerlo. Del mismo modo que los seres humanos están formados por células, porque la naturaleza ha descubierto cómo producir células en masa a un precio muy bajo. La mayoría de las cosas están compuestas de componentes más pequeños, y en la computadora los números decimales están construidos de bits binarios. Como es el software, los gráficos, la interfaz de usuario y todo lo demás.

Otros ya han notado que su uso de “entender” es sospechoso. Pero aparte de eso, hubo varias computadoras tempranas que eran exclusivamente decimales (a nivel de código de operación / datos). Estos incluyen ENIAC e IBM 650. Estas computadoras todavía usaban interruptores para codificar esos dígitos decimales.

En cuanto a por qué las computadoras modernas usan binario en lugar de decimal. No hay ningún beneficio en usar decimales.

Cuando comencé como estudiante universitario en la Universidad Nacional de Australia, su única computadora era una IBM 1620, que usaba aritmética decimal. Me enseñé a programar en FORTRAN II en él.

Solo hay 2 respuestas, ya sea “Sí” o “No”.