Sistemas de numeración
Recuerdan cuando eran niños (no sé si esto aun apliqué pero los que crecimos en los 90s e inicios de los 2000) llevábamos un abaco a la primaria Fig1.
Esto nos permitió comprender como funcionan los sistemas de numeración posicional de forma inconsciente, para nuestro caso especial el sistema de numeración decimal.Y ¿cómo funciona el ábaco? Pues en la varilla izquierda pones una cuenta y sabes que es la representación de las unidades.
La siguiente representa la decenas, la tercera la centenas y así sucesivamente.
Ese es el principio básico de cualquier sistema de numeración. Intentare explicarlo de una forma más general.
Primero tenemos un conjunto de símbolos que nos tendrán un valor intrínseco, estos serán lo números o dígitos. 0,1,2,3,4,5,6,7,8,9 (en el sistema decimal).
De izquierda a derecha tendrán un valor dependiendo de su posición.
| B^n | B^(n-1) | ... | B^3 | B^2 | B^1 | B^0 | B:Base del sistema, decimal para el ejemplo |
| 10^n | 10^(n-1) | ... | 10^3 | 10^2 | 10^1 | 10^0 | |
Para tomar un ejemplo, tomamos el número 3785, este no es otra cosa que la suma de sus componentes:
3x10^{3} + 7x10^{2} + 8x10^{1}+5x10^{0}=3*1000+ 7*100 + 8*10 + 5*1= 3000+700+80+5=3785
El mismo concepto aplica para cualquier sistema de numeración.
En el mundo de la informática se utiliza el sistema binario de numeración para realizar operaciones es más práctico realizar operaciones de bits que codificar el sistema decimal desarrollando hardware que pueda soportarlo.
Sistema de numeración binario.
Dado que las computadoras utilizan transistores para realizar operaciones, la forma de codificar esto es utilizando el sistema binario de numeración.
| 2^n | 2^(n-1) | ... | 2^3 | 2^2 | 2^1 | 2^0 |
| 2^n | 2^(n-1) | ... | 8 | 4 | 2 | 1 |
Siguiendo las reglas de un sistema de numeración, al utilizar solo dos valores posibles, se necesitan solo 2 dígitos para representar cualquier valor. En este caso el 0 y 1.
Así que se puede realizar la conversión a decimal fácilmente siguiendo la siguiente tabla:
| Binario | Desarrollo de exponentes | Sumatoria decimal | Valor Decimal |
| 0000 | 0x2³ + 0x2² + 0x2¹ + 0x2⁰ | 0 + 0 + 0 +0 | 00 |
| 0001 | 0x2³ + 0x2² + 0x2¹ + 0x2⁰ | 0 + 0 + 0 + 1 | 01 |
| 0010 | 0x2³ + 0x2² + 1x2¹ + 0x2⁰ | 0 + 0 + 2 + 0 | 02 |
| 0011 | 0x2³ + 0x2² + 1x2¹ + 1x2⁰ | 0 + 0 + 2 + 1 | 03 |
| 0100 | 0x2³ + 1x2² + 0x2¹ + 0x2⁰ | 0 + 4 + 0 + 0 | 04 |
| 0101 | 0x2³ + 1x2² + 0x2¹ + 1x2⁰ | 0 + 4 + 0 + 1 | 05 |
| 0110 | 0x2³ + 1x2² + 1x2¹ + 0x2⁰ | 0 + 4 + 2 + 0 | 06 |
| 0111 | 0x2³ + 1x2² + 1x2¹ + 1x2⁰ | 0 + 4 + 2 + 1 | 07 |
| 1000 | 1x2³ + 0x2² + 0x2¹ + 0x2⁰ | 8 + 0 + 0 + 0 | 08 |
| 1001 | 1x2³ + 0x2² + 0x2¹ + 1x2⁰ | 8 + 0 + 0 + 1 | 09 |
| 1010 | 1x2³ + 0x2² + 1x2¹ +0x2⁰ | 8 + 0 + 2 + 0 | 10 |
| 1011 | 1x2³ + 0x2² + 1x2¹ + 1x2⁰ | 8 + 0 + 2 + 1 | 11 |
| 1100 | 1x2³ + 1x2² + 0x2¹ + 0x2⁰ | 8 + 4 + 0 + 0 | 12 |
| 1101 | 1x2³ + 1x2² + 0x2¹ + 1x2⁰ | 8 + 4 + 0 + 1 | 13 |
| 1110 | 1x2³ + 1x2² + 1x2¹ + 0x2⁰ | 8 + 4 + 2 + 0 | 14 |
| 1111 | 1x2³ + 1x2² + 1x2¹ + 1x2⁰ | 8 + 4 + 2 + 1 | 15 |
Algo que seguramente se habrá notado es que aunque se necesitan más posiciones, el sistema es muy simple debido a que solamente dos dígitos son suficientes para representar el conjunto de los números enteros.
Siguiendo las reglas de los sistemas de numeración es posible representar valores en cualquier base. Al trabajar con sistemas informáticos, debido a la manera en que utilizamos los semiconductores para el control de la corriente eléctrica (Tema que se verá posteriormente), lo más fácil es utilizar el sistema binario, que además es fácilmente codificable en sistema octal y hexadecimal. Cabe aclarar que el sistema octal actualmente es poco utilizado en aplicación, aunque comprenderlo facilita las cosas cuando estamos aprendiendo.
Para esto vamos a definir algunos conceptos:
Bit: Es la unidad mínima de información, en una computadora el espacio donde solo puede haber 0 ó 1.
Byte: Es la agrupación de 8 bits, en las arquitecturas de microprocesador más simple es el tamaño que tiene un registro (tener esto en cuenta para futuros temas).
Nibble: La agrupación de 4 bits, también conocido como octeto o medio byte.
Sistema de numeración octal: Este sistema de numeración tiene de base el número 8, es decir del 0 al 7.
Sistema de numeración hexadecimal: este sistema de numeración tiene como base el número 16, utilizando los dígitos decimales del 0 al 9 y completándolos con las letras A, B, C, D, E, F.
En la siguiente tabla se puede ver la equivalencia de algunos valores en estos sistemas.
| Binario |
Octal | Hexadecimal | Valor Decimal |
| 0000 | 00 | 00 | 00 |
| 0001 | 01 | 01 | 01 |
| 0010 | 02 | 02 | 02 |
| 0011 | 03 | 03 | 03 |
| 0100 | 04 | 04 | 04 |
| 0101 | 05 | 05 | 05 |
| 0110 | 06 | 06 | 06 |
| 0111 | 07 | 07 | 07 |
| 1000 | 10 | 08 | 08 |
| 1001 | 11 | 09 | 09 |
| 1010 | 12 | 0A | 10 |
| 1011 | 13 | 0B | 11 |
| 1100 | 14 | 0C | 12 |
| 1101 | 15 | 0D | 13 |
| 1110 | 16 | 0E | 14 |
| 1111 | 17 | 0F | 15 |
| 00001 0000 | 20 | 10 | 16 |
Existe una correlación entre los sistemas binario, octal y hexadecimal, dado que la base 8 y 16 en su respectivo sistema es una potencia del número 2.
Para convertir de binario a octal solo agrupamos los bits de derecha a izquierda de 3 en 3 y simplemente se acomodan las cifras. Ejemplos:
| Decimal |
Binario | Agrupando | Octal |
| 28 | 11100 | 011,100 | 38 |
| 147 | 10010011 | 010,010,011 | 223 |
| 465 | 111010001 | 111,010,001 | 721 |
En el caso del hexadecimal, se aplica la misma regla, el único cambio es agrupar en 4 posiciones de izquierda a derecha (un nibble) los dígitos binarios. Algunos ejemplos en la siguiente tabla:
| Decimal | Binario | Agrupando | Hexadecimal |
| 19 | 10011 | 1,0011 | 17 |
| 219 | 11011011 | 1101,1011 | DB |
| 465 | 111010001 | 1,1101,0001 | 1D1 |
Por lo general, la arquitectura de los registros de los procesadores, microprocesadores ó microcontroladores es de 8 bits, 16 bits o 64 bits. Esto toma relevancia dado que el sistema hexadecimal se vuelve hasta una forma natural de realizar las operaciones en los distintos dispositivos.
En lecciones posteriores se intentarán hacer proyectos en arquitecturas de 8 y 32 bits.
<- Anterior Siguiente ->
No hay comentarios.:
Publicar un comentario