Capítulo I: INTRODUCCIÓN






1.1. - NUMEROS BINARIOS, OCTALES Y HEXADECIMALES.

     El sistema de numeración utilizado habitualmente es la base 10; es decir, consta de 10 dígitos (0-9) que podemos colocar en grupos, ordenados de izquierda a derecha y de mayor a menor.

     Cada posición tiene un valor o peso de 10n donde n representa el lugar contado por la derecha:

1357 = 1 x 103 + 3 x 102 + 5 x 101 + 7 x 100

     Explícitamente, se indica la base de numeración como 135710.

     En un ordenador el sistema de numeración es binario -en base 2, utilizando el 0 y el 1- hecho propiciado por ser precisamente dos los estados estables en los dispositivos digitales que componen una computadora.

     Análogamente a la base 10, cada posición tiene un valor de 2n donde n es la posición contando desde la derecha y empezando por 0:

1012 = 1 x 22 + 0 x 21 + 1 x 20

     Además, por su importancia y utilidad, es necesario conocer otros sistemas de numeración como pueden ser el octal (base 8) y el hexadecimal (base 16). En este último tenemos, además de los números del 0 al 9, letras -normalmente en mayúsculas- de la A a la F.

     Llegar a un número en estos sistemas desde base 2 es realmente sencillo si agrupamos las cifras binarias de 3 en 3 (octal) o de 4 en 4 (hexadecimal):

Base 2 a base 8:   101  0112 = 538
Base 2 a base 16: 0010 10112 = 2B16

     A la inversa, basta convertir cada dígito octal o hexadecimal en binario:

Base 8 a base 2:   248  = 010   1002
Base 16 a base 2:  2416 = 0010 01002

     De ahora en adelante, se utilizarán una serie de sufijos para determinar el sistema de numeración empleado:

SufijoBaseEjemplos
b201101010b
o,q8175o
d10789d
h166A5h

     En caso de que no aparezca el sufijo, el número se considera decimal; es decir, en base 10.


1.2. - CAMBIO DE BASE.

     Pese a que las conversiones entre base 2 y base 8 y 16 son prácticamente directas, existe un sistema general para realizar el cambio de una base a otra. El paso de cualquier base a base 10 lo vimos antes:

6A5h = 6 x 162 + 10 x 161 + 5 x 160

     Inversamente, si queremos pasar de base 10 a cualquier otra habrá que realizar sucesivas divisiones por la base y tomar los restos:

donde 4 es el último cociente (menor que la base) y los restantes dígitos son los restos en orden inverso.


1.3. - ESTRUCTURA ELEMENTAL DE LA MEMORIA.

1.3.1. - BIT.

     Toda la memoria del ordenador se compone de dispositivos electrónicos que pueden adoptar únicamente dos estados, que representamos matemáticamente por 0 y 1. Cualquiera de estas unidades de información se denomina BIT, contracción de «binary digit» en inglés.

1.3.2. - BYTE.

     Cada grupo de 8 bits se conoce como byte u octeto. Es la unidad de almacenamiento en memoria, la cual está constituida por un elevado número de posiciones que almacenan bytes. La cantidad de memoria de que dispone un sistema se mide en Kilobytes (1 Kb = 1024 bytes), en Megabytes (1 Mb = 1024 Kb), Gigabytes (1 Gb = 1024 Mb), Terabytes (1 Tb = 1024 Gb) o Petabytes (1 Pb = 1024 Tb).

     Los bits en un byte se numeran de derecha a izquierda y de 0 a 7, correspondiendo con los exponentes de las potencias de 2 que reflejan el valor de cada posición. Un byte nos permite, por tanto, representar 256 estados (de 0 a 255) según la combinación de bits que tomemos.

1.3.3. - NIBBLE.

     Cada grupo de cuatro bits de un byte constituye un nibble, de forma que los dos nibbles de un byte se llaman nibble superior (el compuesto por los bits 4 a 7) e inferior (el compuesto por los bits 0 a 3). El nibble tiene gran utilidad debido a que cada uno almacena un dígito hexadecimal:


BinarioHex.DecimalBinarioHex.Decimal
000000100088
000111100199
0010221010A10
0011331011B11
0100441100C12
0101551101D13
0110661110E14
0111771111F15


1.4. - OPERACIONES ARITMÉTICAS SENCILLAS EN BINARIO.

     Para sumar números, tanto en base 2 como hexadecimal, se sigue el mismo proceso que en base 10:

                                Podemos observar que la suma se desa-
          1010 1010b        rrolla de la forma tradicional; es decir:
        + 0011 1100b        sumamos normalmente,  salvo en el caso de
       --------------       1 + 1 = 102 , en cuyo caso tenemos un aca-
          1110 0110b        rreo de 1 (lo que nos llevamos).


1.5. - COMPLEMENTO A DOS.

     En general, se define como valor negativo de un número el que necesitamos sumarlo para obtener 00h, por ejemplo:

            FFh           Como en un byte solo tenemos dos nibbles, es
          + 01h     decir, dos dígitos hexadecimales,  el resultado es
          ------    0  (observar cómo el 1 más significativo subrayado
           100h     es ignorado). Luego FFh=-1.  Normalmente, el bit 7
                    se considera como de signo y, si está activo (a 1)
                    el número es negativo.

     Por esta razón, el número 80h, cuyo complemento a dos es él mismo, se considera negativo (-128) y el número 00h, positivo. En general, para hallar el complemento a dos de un número cualquiera basta con calcular primero su complemento a uno, que consiste en cambiar los unos por ceros y los ceros por unos en su notación binaria; a continuación se le suma una unidad para calcular el complemento a dos. Con una calculadora, la operación es más sencilla: el complemento a dos de un número A de n bits es 2n-A.

     Otro factor a considerar es cuando se pasa de operar con un número de cierto tamaño (ej., 8 bits) a otro mayor (pongamos de 16 bits). Si el número es positivo, la parte que se añade por la izquierda son bits a 0. Sin embargo, si era negativo (bit más significativo activo) la parte que se añade por la izquierda son bits a 1. Este fenómeno, en cuya demostración matemática no entraremos, se puede resumir en que el bit más significativo se copia en todos los añadidos: es lo que se denomina la extensión del signo: los dos siguientes números son realmente el mismo número (el -310):  11012 (4 bits) y 111111012 (8 bits).


1.6. - AGRUPACIONES DE BYTES.


TipoDefinición
Palabra2 bytes contiguos
Doble palabra2 palabras contiguas (4 bytes)
Cuádruple palabra4 palabras contiguas (8 bytes)
Párrafo16 bytes
Página256 bytes, 16 Kb, etc.
Segmento64 Kbytes


1.7. - REPRESENTACIÓN DE LOS DATOS EN MEMORIA.

1.7.1. - NUMEROS BINARIOS: máximo número representable:

TipoSin signo
1 byte255
2 bytes65.535
4 bytes4.294.967.295
8 bytes18.446.744.073.709.551.615

TipoPositivoNegativo
1 byte127-128
2 bytes32.767-32.768
4 bytes2.147.483.647-2.147.483.648
8 bytes9.223.372.036.854.775.807-9.223.372.036.854.775.808

     Los números binarios de más de un byte se almacenan en la memoria en los procesadores de Intel en orden inverso: 01234567h se almacenaría: 67h, 45h, 23h, 01h.

1.7.2. - NUMEROS BINARIOS CODIFICADOS EN DECIMAL (BCD).

     Consiste en emplear cuatro bits para codificar los dígitos del 0 al 9 (desperdiciando las seis combinaciones que van de la 1010 a la 1111). La ventaja es la simplicidad de conversión a/de base 10, que resulta inmediata. Los números BCD pueden almacenarse desempaquetados, en cuyo caso cada byte contiene un dígito BCD (Binary-Coded Decimal); o empaquetados, almacenando dos dígitos por byte (para construir los números que van del 00 al 99). La notación BCD ocupa cuatro bits -un nibble- por cifra, de forma que en el formato desempaquetado el nibble superior siempre es 0.

1.7.3. - NUMEROS EN PUNTO FLOTANTE.

     Son grupos de bytes en los que una parte se emplea para guardar las cifras del número (mantisa) y otra para indicar la posición del punto flotante (exponente), de modo equivalente a la notación científica. Esto permite trabajar con números de muy elevado tamaño -según el exponente- y con una mayor o menor precisión en función de los bits empleados para codificar la mantisa.

1.7.4. - CÓDIGO ASCII.

     El código A.S.C.I.I. (American Standard Code for Information Interchange) es un convenio adoptado para asignar a cada carácter un valor numérico; su origen está en los comienzos de la Informática tomando como muestra algunos códigos de la transmisión de información de radioteletipo. Se trata de un código de 7 bits con capacidad para 128 símbolos que incluyen todos los caracteres alfanuméricos del inglés, con símbolos de puntuación y algunos caracteres de control de la transmisión.

     Con posterioridad, con la aparición de los microordenadores y la gran expansión entre ellos de los IBM-PC y compatibles, la ampliación del código ASCII realizada por esta marca a 8 bits, con capacidad para 128 símbolos adicionales, experimenta un considerable auge, siendo en la actualidad muy utilizada y recibiendo la denominación oficial de página de códigos 437 (EEUU). Se puede consultar al final de este libro. Es habitualmente la única página soportada por las BIOS de los PC. Para ciertas nacionalidades se han diseñado otras páginas específicas que requieren de un software externo. En las lenguas del estado español y en las de la mayoría de los demás países de la UE, esta tabla cubre todas las necesidades del idioma.


1.8. - OPERACIONES LÓGICAS EN BINARIO.

     Se realizan a nivel de bit y pueden ser de uno o dos operandos:

xNOT (x)
01
10
x yx AND yx OR yx XOR y
0 0000
0 1011
1 0011
1 1110


  • Volver al Índice