Tú y yo crecimos contando de uno a diez. Las computadoras, sin embargo, cuentan un poco diferente. Utilizan un sistema numérico diferente, llamado binario, para hacer un seguimiento de los datos. Pero, ¿qué significa eso y cuál es el sentido de todo esto?
¿Cómo contamos?
Todos los principales sistemas numéricos del mundo son «posicional .». Esto significa que el valor de un número se determina por el lugar del número en el que aparece. Llamamos a esto el valor «lugar», y ayuda a determinar la magnitud de un número.
Por ejemplo, el sistema decimal con el que todos estamos familiarizados utiliza unos, decenas, cientos y miles de lugares para indicar cuánto vale un solo «2». Si «2» está en el lugar de los centenares (como en «200»), su valor es mayor que el mismo 2 en el lugar de los unos (como en «2»).
Pero no siempre fue así. Esta forma de representar el valor es una invención algo moderna. Requiere el uso de cero como marcador de posición, y el cero fue inventado hace sólo 4000 años. Por eso los sistemas numéricos más antiguos como números romanos y los jeroglíficos egipcios no usan lugar. En su lugar, se suma el valor de todos los «dígitos» para llegar al valor final.
Utilizando este concepto básico de valor posicional, hemos creado diferentes sistemas numéricos o formas de escribir números. Los sistemas numéricos se denominan por el número de incrementos por lugar. Cuando decimos incrementos, nos referimos a cuántas veces se puede aumentar el valor de un solo lugar antes de «llevar» ese valor al siguiente lugar.
Por ejemplo, en base-ten podemos incrementar el lugar de los unos nueve veces, con diez dígitos diferentes (contando cero), antes de tener que llevar su valor al lugar de los unos.
Diferencia entre decimal, binario y hexadecimal
De niño, te enseñaron a contar con los dedos. Diez dedos, diez números. Para contar más de diez, puede mantener presionado un dedo mientras cuenta con los otros. Esta es la base del sistema numérico de base de diez, o decimal. Es el sistema numérico que se usa todos los días, y es la base para que la mayoría de la gente entienda el mundo numérico.
Sin embargo, las computadoras no pueden usar la base diez. El hardware necesario para representar un valor de base a nivel de hardware sería enormemente complejo. En su lugar, las computadoras usan binario, o base dos, para contar. En binario, sólo hay dos números: uno y cero. Cada «lugar» también tiene valores diferentes.
El lugar más bajo es unos, luego dos, cuatro, ocho, seis y así sucesivamente. El valor de cada lugar es el doble del valor del lugar anterior. Para evaluar el equivalente decimal de un número binario, multiplique cada número por su valor posicional y sume todos los resultados. Esto es realmente la misma cosa que haces cuando evalúas un número de base, pero lo haces tan rápido que pasas por alto el proceso.
Hexadecimal es diferente de binario y decimal. Utiliza la base dieciséis, lo que significa que hay dieciséis dígitos diferentes que pueden aparecer en un solo lugar. Como sólo tenemos diez números en nuestro idioma común, usamos las primeras seis letras latinas (A, B, C, D, E, F) para indicar los dígitos del 10 al 15.
Es posible que reconozca este formato por los códigos de color utilizados en el diseño web. Cuando se utiliza en informática, a menudo va precedido de 0xpara indicar que la siguiente cadena debe interpretarse como un número hexadecimal, cada valor de lugar es dieciséis veces mayor que el valor de lugar anterior, comenzando por el lugar de los otros.
Conclusión: ¿Por qué usar sistemas numéricos diferentes?
Desafortunadamente, cada sistema numérico tiene su propio propósito, así que estamos atascados usando más de uno.
Decimal es el más familiar para los operadores humanos, y es compartido por casi todas las culturas de la Tierra. Esto lo convierte en el esquema de conteo estándar para la comunicación humana. No es ninguna sorpresa.
Sin embargo, las computadoras no pueden contar en decimales. Sus circuitos sólo pueden representar uno de dos estados: ON u OFF. Eso los hace un ajuste natural para el binario, que tiene dos estados: uno y cero. El cero, por supuesto, representa off, mientras que uno representa on.
Hexadecimal es más bien un caso de borde. Se utiliza principalmente como una forma conveniente de representar los valores binarios para los operadores humanos Un valor de un solo lugar en hexadecimal representa cuatro bits de memoria.
Esto significa que dos lugares representan ocho bits, o un byte. Es por eso que verás que el hexadecimal se usa para representar el valor de los registros de memoria. El tamaño de la broca lo hace un ajuste natural, y es más fácil de leer que una cadena de unos y ceros.