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:
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:
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):
A la inversa, basta convertir cada dígito octal o hexadecimal en binario:
De ahora en adelante, se utilizarán una serie de sufijos para determinar el sistema de numeración
empleado:
| Sufijo | Base | Ejemplos |
| b | 2 | 01101010b |
| o,q | 8 | 175o |
| d | 10 | 789d |
| h | 16 | 6A5h |
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:
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:
| Binario | Hex. | Decimal | Binario | Hex. | Decimal |
| 0000 | 0 | 0 | 1000 | 8 | 8 |
| 0001 | 1 | 1 | 1001 | 9 | 9 |
| 0010 | 2 | 2 | 1010 | A | 10 |
| 0011 | 3 | 3 | 1011 | B | 11 |
| 0100 | 4 | 4 | 1100 | C | 12 |
| 0101 | 5 | 5 | 1101 | D | 13 |
| 0110 | 6 | 6 | 1110 | E | 14 |
| 0111 | 7 | 7 | 1111 | F | 15 |
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).
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.
| Tipo | Definición |
| Palabra | 2 bytes contiguos |
| Doble palabra | 2 palabras contiguas (4 bytes) |
| Cuádruple palabra | 4 palabras contiguas (8 bytes) |
| Párrafo | 16 bytes |
| Página | 256 bytes, 16 Kb, etc. |
| Segmento | 64 Kbytes |
1.7. - REPRESENTACIÓN DE LOS DATOS EN MEMORIA.
1.7.1. - NUMEROS BINARIOS: máximo número representable:
| Tipo | Sin signo |
| 1 byte | 255 |
| 2 bytes | 65.535 |
| 4 bytes | 4.294.967.295 |
| 8 bytes | 18.446.744.073.709.551.615 |
| Tipo | Positivo | Negativo |
| 1 byte | 127 | -128 |
| 2 bytes | 32.767 | -32.768 |
| 4 bytes | 2.147.483.647 | -2.147.483.648 |
| 8 bytes | 9.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:
| x | NOT (x) |
| 0 | 1 |
| 1 | 0 |
| x y | x AND y | x OR y | x XOR y |
| 0 0 | 0 | 0 | 0 |
| 0 1 | 0 | 1 | 1 |
| 1 0 | 0 | 1 | 1 |
| 1 1 | 1 | 1 | 0 |