El pasado mas presente que nunca

 

CURSO DE ASSEMBLER

Por Willy Soft

2. Sistemas numéricos decimal, binario y hexadecimal.

I. Decimal:

¿Se han fijado que, cuando niños, un número como el 253 le decíamos: “2 centenas, 5 decenas y 3 unidades”? Bueno, a eso nos remontaremos, y no porque tenga una pobre opinión de su inteligencia, sino porque nos puede servir de base para este capítulo.

Los números que nosotros conocemos, como 253, 403, 523, etcétera, están escritos en un formato conocido como decimal. ¿Por qué se llama así? Porque una cantidad se expresa como combinación de entre 10 cifras, en este caso, del 0 al 9.

Ejemplos:

- 253 = 2 centenas, 5 decenas, 3 unidades = 2*100 + 5*10 +3*1

- 4700 = 4*1000 + 7*100 + 0*10 + 0*1

Y así, sucesivamente. Si miran atentamente, verán que cada cifra es multiplicada por potencias de a 10, es decir:

- 253 = 2*(10^2) + 5*(10^1) + 3*(10^0)

- 4700 = 4*(10^3) + 7*(10^2) + 0*(10^1) + 0*(10^0)

 

II. Binario:

En general, cualquier cantidad la puedes expresar como una suma de combinaciones de potencias de 10. Para el caso de los números binarios, lo que se utiliza es la base 2. Por lo tanto, se utilizan los números 0 y 1.

Ejemplos:

- 1101 = 1*(2^3) + 1*(2^2) + 0*(2^1) + 1*(2^0) = 8 + 4 + 0 + 1 = 13

- 1010 = 10 en decimal.

Por ejemplo: queremos transformar los siguientes números binarios a decimal:

00000011

00000110

00001001

00010001

11001100

Para convertir un numero binario a decimal (o decimal a binario) podemos usar la siguiente tabla:

128

64

32

16

8

4

2

1

 

DEC

0

0

0

0

0

0

1

1

=

3

0

0

0

0

0

1

1

0

=

6

0

0

0

0

1

0

0

1

=

9

0

0

0

1

0

0

0

1

=

17

1

1

0

0

1

1

0

0

=

204

Basta con sumar el número decimal que sale en la parte de arriba de la tabla asociandolo a cada "1" del numero binario que queremos convertir.  

 

III. Hexadecimal:

En el caso del sistema numérico hexadecimal es lo mismo, pero en vez de usar la base 10, utilizan la base 16. Ahora la pregunta del millón: ¿cómo expreso números del 0 al 15?. Fácil: utilizando los numeros del 0 al 9 más las letras de la A a la F, de esta forma:

Número decimal 

  Número  hexadecimal

0

0

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

8

9

9

10

A

11

B

12

C

13

D

14

E

15

F

Como un número hexadecimal se escribe de manera “parecida” a la numeración decimal, como convención lo que haremos será anteponer un signo “$” previo al número. Por ejemplo: los números $18, $23, $10 son números hexadecimales. Y los números 18, 23, 10 son números decimales.

Ahora bien, veamos algunos ejemplos:

- $24 = 2*(16^1) + 4*(16^0) = 2*16 + 4*1 = 36 en decimal.

- $600 = 6*(16^2) + 0*(16^1) + 0*(16^0) =1536

- $3E8 = 1000

Ahora, ¿de qué sirve la numeración hexadecimal con el Atari? Sirve para simplificarnos un poco la vida, ya que el direccionamiento del Atari 8-bits se compone de 2^16 (65536) bytes o, dicho de otro modo, 64 kilobytes, numerados desde el $0 hasta el $FFFF (0 a 65535 en decimal).

¿Y qué tanto eso? Bueno, les explico: la memoria del Atari 8-bits se divide en “páginas” (pages) de 256 bytes. La primera página es la “página cero” (zero page), correspondiente a las posiciones 0 a la 255. Después tenemos la “página 1”, de 256 a 511, página 2: de 512 a 767, y así, sucesivamente.

Como pueden ver, no es fácil recordar las posiciones de cada página, así que el sistema hexadecimal nos simplifica la vida. ¿Cómo? Así:

Número de página

Posiciones decimales

Posiciones hexadecimales

0 ($0)

0-255

$0-$FF

1 ($1)

256-511

$100-$1FF

2 ($2)

512-767

$200-$2FF

3 ($3)

768-1023

$300-$3FF

 

 

16 ($10)

4096-4351

$1000-$10FF

 

 

255 ($FF)

65280-65535

$FF00-$FFFF

¿Ven? Mucho más práctico.

Otra utilidad que tiene el usar el sistema hexadecimal es que convertir de ese sistema al sistema binario de ocho dígitos (ocho bits) es muy fácil.

Por ejemplo: queremos transformar los siguientes números binarios a hexadecimal:

00000011

00000110

00001001

00010001

11001100

Basta con usar la siguiente tabla:

HEXADECENAS

UNIDADES

 

 

8

4

2

1

8

4

2

1

 

HEX

 

 

 

 

 

 

 

 

 

 

Se copia el número de derecha a izquierda a partir del “1” de las unidades y se procede a sumar cada subgrupo (unidades y hexadecenas) por separado,  quedando de esta forma:

HEXADECENAS

UNIDADES

 

 

8

4

2

1

8

4

2

1

 

HEX

0

0

0

0

0

0

1

1

=

$3

0

0

0

0

0

1

1

0

=

$6

0

0

0

0

10

0

0

1

=

$9

0

0

0

1

0

0

0

1

=

$11

1

1

0

0

1

1

0

0

=

$CC

Eso nos ayudará mucho para crear nuestros primeros programas.

En el próximo capítulo veremos cómo crear nuestro primer ejecutable Atari.

 

PREGUNTA TUS DUDAS O DANOS TUS SUGERENCIAS EN EL FORO

 

IR a capítulo 1  2  3  4  5  6  7  8  9