Muy buenas respuestas ya aquí. Para intentar agregar un poco más a lo que ya se dijo:
Una computadora usa la misma idea (es decir, muchas señales de encendido / apagado) para almacenar / producir resultados. Por lo tanto, una computadora “piensa” en ON u OFF, solo usamos la representación de 1 para su ON y 0 para su OFF …
En su mayoría, hace todas estas cosas “ingeniosas” a través de matemáticas muy simplistas, utilizando solo números. Sin embargo, utiliza los números de una manera diferente que usted o yo. Tendemos a pensar en los números como 0, 1, 2, 3, … 9, 10, etc. Una computadora no tiene ese privilegio, solo puede “pensar” en 0 y 1. Pero eso todavía significa que puede hacer el las mismas matemáticas que podemos con nuestros 10 (u otros) dígitos. La razón es que de la misma manera que decidimos usar otro dígito, la computadora “decide” usar más. Es decir, ¿qué pasa después de las 9? 10 por supuesto, solo estamos repitiendo un patrón, ¿no?
Esto se conoce como la base del sistema de números que utilizamos. Por ejemplo, lo que usan los humanos es la base 10 (o decimal) y lo que la computadora usa es binario (o base 2). Entonces, cuando una computadora cuenta, cuenta así:
0 => 0
1 => 1
2 => 10
3 => 11
4 => 100
5 => 101
…
9 => 1001
10 => 1010
11 => 1011
etc.
También hay otras formas, a veces las usamos para que coincida con el método de la computadora con un poco más de precisión. Por ejemplo, podríamos contar en hexadecimal: base 16 en lugar de la base habitual 10. En este caso, tenemos 6 glifos adicionales para agregar a los posibles dígitos. Usualmente usamos estos (también podríamos ir con base 8 octal, o lo que elijamos) porque coinciden con las potencias de 2 que usa un sistema binario, es decir, la base 16 cae exactamente en las potencias de dos (omitiendo algunas, pero nunca caer en algo que no es una potencia de 2 como lo hace el sistema de base 10). La mayor bendición sobre esto es que la cantidad de dígitos requeridos en hexadecimal es proporcional a la cantidad de dígitos en el contenedor (en este caso, cada dígito en hexadecimal se asigna a 4 dígitos en el contenedor, mucho más fácil de convertir a / desde). Si usamos hexadecimal (base 16) contaríamos así:
Dec => Hex => Bin
…
9 => 9 => 1001
10 => A => 1010
11 => B => 1011
…
15 => F => 1111
16 => 10 => 10000
17 => 11 => 10001
…
31 => 1F => 11111
32 => 20 => 100000
33 => 21 => 100001
…
A partir de esto, todas las formas de matemáticas se realizan de la misma manera que aprendiste matemáticas. Por ejemplo, sumar 2 números:
__dec => hex => bin
25 19 11001
+ 16 10 10000
----------------------
31 29 01001
+ 10 100000 (llevar)
----------------------
41 29 101001
El mismo tipo de cosas se aplica a todas las matemáticas, multiplicación, división, resta, etc. Y a partir de eso también se extiende a otras cosas como raíces, exponentes, trigonometría, etc.
Ahora, todo lo demás que muestra la computadora son formas diferentes de representar esos números. Por ejemplo, el texto en esta página es solo un grupo de números, cada uno con una “comprensión” específica en el sentido de que un número específico representa un carácter específico. Uno de los principales métodos de codificación de letras es la secuencia ASCII (códigos de caracteres ASCII y conversión de gráficos html, octal, hexadecimal y decimal). En eso, la letra A recibe el número 65 (en decimal), por lo tanto 41 (hexadecimal) y 1000001 (bin).
Pero por lo general, dichos números deben dividirse, de lo contrario no sabemos dónde comienza uno y dónde se detiene otro: las computadoras ni siquiera tienen el privilegio de usar espacios. Para evitar esto, la computadora usa grupos de dígitos binarios. Por lo general, en grupos de 8 (llamados Bytes) ya que esto es en sí mismo una potencia de 2 y proporciona una cantidad razonablemente decente de posibles caracteres (256 posibilidades). Si el número es bajo, entonces la parte superior se llena con ceros. Entonces, en realidad, una A se guardaría en una computadora como 01000001, rellenando el primer dígito no necesario con un 0. También hay otras formas, por ejemplo, UTF8 básicamente dice: “Si el primer bit es un 1, hay otros 8 dígitos después de esto uno, que luego extiende el código para incluir aún más posibilidades “.
Y, por último, cosas como gráficos / imágenes / 3d / sonido / etc. también se codifican al dar a cada variante un número diferente para mostrar. Por ejemplo, los colores que se muestran en esta pantalla están formados por pequeños puntos, cada uno con un color específico (generalmente codificado en algo como RGB – Rojo / Verde / Azul como un número de 0 a (digamos) 255 para cada uno).
Se vuelve aún más importante cuando comenzamos a mirar las acciones que puede hacer una computadora. Estos también son solo “números” codificados para significar diferentes “cosas tienen que suceder”. Por ejemplo, la CPU de la computadora puede tener un conjunto de instrucciones (es decir, un eco de varias acciones posibles) en el que una de ellas es la instrucción para sumar números, otra para restar, otra para cambiarlos de 1s a 0s y viceversa, etc. En esto consiste el “software”: las señales de encendido / apagado que vemos como análogas a 1 y 0, en patrones que se adaptan a las acciones que el software necesita que tome la CPU.
Pero dado que todo comienza desde ese encendido / apagado, que se interpreta como 1 o 0 … una computadora solo está usando 1s y 0s. Simplemente lo hace mirando los patrones de 1s y 0s que se siguen. El patrón es lo que le da al “significado” 1 y 0, por sí solos tienen un significado muy limitado.