0% encontró este documento útil (0 votos)
176 vistas150 páginas

Unidad I - Representación de Datos-1 PDF

Cargado por

alvaro4356
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
176 vistas150 páginas

Unidad I - Representación de Datos-1 PDF

Cargado por

alvaro4356
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Unidad I: REPRESENTACIÓN DE DATOS

Los datos se presentan de diferentes maneras, por ejemplo números, texto, imágenes, audio y video . La gente necesita
procesar todos estos tipos de datos.

Tabla 1: Tipo de Datos


Componentes de un Sistema de Cómputo

Definición de Bit

• Bit: es el acrónimo de Binary digit. (dígito binario).


Un bit es un dígito del sistema de numeración binario.

• Unidad mínima de información

• Codifica información:
• 1 bit: 0 ó 1
• 2 bits: 00, 01, 10 ó 11
•…
1 0
True False

2
Componentes de un Sistema de Cómputo

Bit
 Con un bit podemos representar solamente dos valores,
que suelen representarse como 0, 1.
 Para representar o codificar más información en un
dispositivo digital, necesitamos una mayor cantidad de
bits. Si usamos dos bits, tendremos cuatro
combinaciones posibles:
 1 bit: 0 ó 1
 2 bits: 00, 01, 10 ó 11
Ejemplo
Tabla 2: Bit
 0 0 - Los dos están "apagados"
 0 1 - El primero (de derecha a izquierda) está
"encendido" y el segundo"apagado"
 1 0 - El primero (de derecha a izquierda) está
"apagado" y el segundo "encendido"
 1 1 - Los dos están "encendidos"

Con estas cuatro combinaciones podemos representar hasta cuatro valores


diferentes, como por ejemplo, los colores rojo, verde, azul y negro.
Bit
 Cuatro bits forman un nibble, y pueden representar hasta
 24 = 16 valores diferentes;
 Ocho bits forman un octeto, y se pueden representar hasta
 28 = 256 valores diferentes.

En general:
 Con un número n de bits pueden representarse hasta
 2n valores diferentes.
Número de símbolos y longitud de un patrón de bits

Tabla 2.1 Patrón de bit


Ejemplo de Patrones Bits
Componentes de un Sistema de Cómputo

Múltiplos del bit y Unidades

•1 Byte (B) = 8 bits (b)

•1 Kilobyte (KB) = 210 B


•1 Megabyte (KB) = 210 KB
•1 Gigabyte (GB) = 210 MB
•1 Terabyte (TB) = 210 GB
•1 Petabyte (PB) = 210 TB)

8
Sistemas de numeración

 Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar


datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se
caracterizan porque un símbolo tiene distinto valor según la posición que ocupa en la
cifra.
Sistema numérico decimal
El sistema numérico decimal tiene 10 dígitos: del 0 al 9

El sistema numérico decimal tiene como base el 10: cada


posición tiene un peso de 10
….105 104 103 102 101 100. 10-1 10-2 10-3 10-4 10-5…

14.2 = 1 x 101 + 4 x 100 + 2 x 10-1


Sistema numérico binario
El sistema numérico binario tiene 2 dígitos: 0 y 1

El sistema numérico binario tiene como base el 2: cada


posición tiene un peso de 2

….25 24 23 22 21 20 . 2-1 2-2 2-3 2-4 2-5 …


10111.101 = 1 x 24 +0 x 23 +1 x 22 +1 x 21 + 1 x 20+ 1 x 2-1 +
+0 x 2-2 +1 x 2-3
Expresión binaria del 0 a 15
¡Contar en binario!
Otros sistemas “posicionales”
 Octal (base 8)
– Ocho dígitos [0…7]

 Hexadecimal (base 16)


– Dieciséis dígitos [0…9A…F]
Los primeros 256 números en las
bases más importantes (I)
Los primeros 256 números en las
bases más importantes (II)
Los primeros 256 números en las
bases más importantes (III)
Los primeros 256 números en las
bases más importantes (IV)
Rangos
Conversión a base 10
 Expresar en forma polinomial y operar en base
10

 Ejemplos:
– BC9216) = 11x163 + 12x162 + 9x161 + 2x160 =
4827410)
– 101100.112) = 1x25 + 1x23 + 1x22 + 1x2-1 + 1x2-2 =
32 + 8 + 4 + 0,5 + 0,25 = 44,7510)
Conversión Decimal a Binario
Método de suma de pesos
Pesos binarios
256 128 64 32 16 8 4 2 1
357 = 256 + 64 + 32 + 4 + 1 101100101

Pesos binarios
1024 512 256 128 64 32 16 8 4 2 1
1937 = 1024 + 512 + 256 + 128 + 16 + 1 11110010001
Método de las divisiones sucesivas
por 2 (fundamentos)
Dividendo Divisor* Cociente Re sto

12 8 12  8 *1 4 o bien 12  1 * 81  4 * 8 0
4 1

92 8 92  8 *11 4 como 11  8 *1  3
4 11 8 Sustituyendo, se puede decir que
3 1 92  8 * (8 *1  3)  4 o bien
92=1*82 + 3*81 + 4*80
Método de las divisiones sucesivas
por 2 (ejemplos)
 19 2 45 2
1 9 2 1 22 2
1 4 2 0 11 2
0 2 2 1 5 2
0 1 1 2 2
1910) =100112) 0 1
4510) = 1011012)
La operación finaliza cuando el cociente es menor
que la base, en nuestro caso, menor que 2.
Se toma el último cociente y los restos en orden
contrario a como han ido apareciendo
Conversión de fracciones
decimales a binario
Método de suma de pesos
Pesos binarios
64 32 16 8 4 2 1 .5 .25 .125 .0625
95.687510) = 64 + 16 + 8 + 4 + 2 + 1 + .5 + .125 + .0625
1011111.10112)
Método de divisiones y
multiplicaciones
• División por 2 repetida de la
parte entera da el entero en
binario
• Multiplicación por 2 repetida de
la fracción da la fracción binaria
De base 10 a una base genérica a
 Se divide por la base a sucesivamente, tomando
el último cociente y los restos en orden inverso
 Ejemplo:
– 4827410) =BC9216)
Entre bases 2 y 2n
Tabla resumen
Representación de información alfanumérica I
(American Standart Code for Information Interchange, ASCII)
Representación de información alfanumérica II
(American Standart Code for Information Interchange, ASCII)
Componentes de un Sistema de Cómputo

Cambio de base: binario, octal, hexadecimal [Prie06] (Apéndice A. pp.767)

• Binario: 000, 001, 010, 011, 100, 101, 110, 111


• Octal: 00, 01, 02, 03, 04, 05, 06, 07, 10, 11, 12, 13, 14, ...
• Decimal: 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, …
• Hexadecimal: 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 10, 11,

30
Ejercicios
Sistema de numeración decimal

 El sistema de numeración que utilizamos habitualmente es el decimal, que se compone de diez


símbolos o dígitos (0, 1, 2, 3, 4, 5, 6, 7, 8 y 9) a los que otorga un valor dependiendo de la posición
que ocupen en la cifra: unidades, decenas, centenas, millares, etc.
 El valor de cada dígito está asociado al de una potencia de base 10, número que coincide con la
cantidad de símbolos o dígitos del sistema decimal, y un exponente igual a la posición que ocupa el
dígito menos uno, contando desde la derecha.

En el sistema decimal el número 528, por ejemplo, significa:


5 centenas + 2 decenas + 8 unidades, es decir:

5* 102 + 2*101 + 8* 100 o, lo que es lo mismo:

500 + 20 + 8 = 528
Sistema de numeración binario
 El sistema de numeración binario utiliza sólo dos dígitos, el cero (0) y el uno (1).

 En una cifra binaria, cada dígito tiene distinto valor dependiendo de la posición que ocupe. El valor de
cada posición es el de una potencia de base 2, elevada a un exponente igual a la posición del dígito
menos uno.

 De acuerdo con estas reglas, el número binario 1011 tiene un valor que se calcula así:
1* 23 + 0* 22 + 1* 2n + 1* 20 , es decir:

8 + 0 + 2 + 1 = 11

 y para expresar que ambas cifras describen la misma cantidad lo escribimos así:
10112 = 1110

 10112 = 1110
Conversión entre números decimales y
binarios
Convertir un número decimal al sistema binario es muy sencillo: basta con realizar divisiones sucesivas por 2 y
escribir los restos obtenidos en cada división en orden inverso al que han sido obtenidos.
Por ejemplo, para convertir al sistema binario el número 7710 haremos una serie de divisiones que arrojarán los restos
siguientes:
 77 : 2 = 38 Resto: 1
 38 : 2 = 19 Resto: 0
 19 : 2 = 9 Resto: 1
 9 : 2 = 4 Resto: 1
 4 : 2 = 2 Resto: 0
 2 : 2 = 1 Resto: 0
 1 : 2 = 0 Resto: 1
y, tomando los restos en orden inverso obtenemos la cifra binaria:

7710 = 10011012
Ejercicio
 Expresa, en código binario, los números decimales siguientes: 191, 25, 67, 99, 135, 276
El tamaño de las cifras binarias
 La cantidad de dígitos necesarios para representar un número en el sistema binario es mayor que
en el sistema decimal.
 En el ejemplo del párrafo anterior, para representar el número 77, que en el sistema decimal está
compuesto tan sólo por dos dígitos, han hecho falta siete dígitos en binario.

 Para representar números grandes harán falta muchos más dígitos.


 Por ejemplo, para representar números mayores de 255 se necesitarán más de ocho dígitos, porque 28 =
256 y podemos afirmar, por tanto, que 255 es el número más grande que puede representarse con ocho
dígitos.

 Como regla general, con n dígitos binarios pueden representarse un máximo de 2n , números. El
número más grande que puede escribirse con n dígitos es una unidad menos, es decir, 2n – 1.
 Con cuatro bits, por ejemplo, pueden representarse un total de 16 números, porque 24= 16 y el mayor de
dichos números es el 15, porque 24 -1 = 15.
Ejercicios
Ejercicio 2:
 Averigua cuántos números pueden representarse con 8, 10, 16 y 32 bits y cuál es el
número más grande que puede escribirse en cada caso.

Ejercicio 3:
 Dados dos números binarios: 01001000 y 01000100 ¿Cuál de ellos es el mayor?
¿Podrías compararlos sin necesidad de convertirlos al sistema decimal?
Sistema de numeración octal
 El inconveniente de la codificación binaria es que la representación de algunos
números resulta muy larga. Por este motivo se utilizan otros sistemas de numeración
que resulten más cómodos de escribir: el sistema octal y el sistema hexadecimal.
Afortunadamente, resulta muy fácil convertir un número binario a octal o a
hexadecimal.
 En el sistema de numeración octal, los números se representan mediante ocho dígitos
diferentes: 0, 1, 2, 3, 4, 5, 6 y 7. Cada dígito tiene, naturalmente, un valor distinto
dependiendo del lugar que ocupen. El valor de cada una de las posiciones viene
determinado por las potencias de base 8.
Ejemplo
 Por ejemplo, el número octal 2738 tiene un valor que se
calcula así:
2* 83 + 7* 82 + 3* 81 = 2*512 + 7*64 + 3*8 = 149610

2738 = 149610
Conversión de un número decimal a
octal
 La conversión de un número decimal a octal se hace con la misma técnica que ya hemos
utilizado en la conversión a binario, mediante divisiones sucesivas por 8 y colocando los
restos obtenidos en orden inverso. Por ejemplo, para escribir en octal el número decimal
12210 tendremos que hacer las siguientes divisiones:

122 : 8 = 15 Resto: 2
15 : 8 = 1 Resto: 7
1:8=0 Resto: 1
 Tomando los restos obtenidos en orden inverso tendremos la cifra octal:
12210 = 1728
Ejercicio
Ejercicio 5:
 Convierte los siguientes números decimales en octales: 6310, 51310, 11910
Conversión octal a decimal
 La conversión de un número octal a decimal es igualmente sencilla,
conociendo el peso de cada posición en una cifra octal.

Por ejemplo, para convertir el número 2378 a decimal basta con


desarrollar el valor de cada dígito:

 2*82 + 3*81 + 7*80 = 128 + 24 + 7 = 15910


2378 = 15910
Ejercicio
Ejercicio 6:
 Convierte al sistema decimal los siguientes números
octales: 458, 1258, 6258
Sistema de numeración hexadecimal
 Sistema de numeración hexadecimal
En el sistema hexadecimal los números se representan con dieciséis
símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. Se utilizan los
caracteres A, B, C, D, E y F representando las cantidades decimales 10, 11,
12, 13, 14 y 15 respectivamente, porque no hay dígitos mayores que 9 en el
sistema decimal. El valor de cada uno de estos símbolos depende, como es
lógico, de su posición, que se calcula mediante potencias de base 16.
Ejemplo
Calculemos, a modo de ejemplo, el valor del número hexadecimal 1A3F16:

1A3F16 = 1*163 + A*162 + 3* 161 + F* 160

1*4096 + 10*256 + 3*16 + 15*1 = 6719

1A3F16 = 671910
Ejercicio
Ejercicio 7:
 Expresa en el sistema decimal las siguientes cifras
hexadecimales: 2BC516, 10016, 1FF16
Convertir números Decimales a
hexadecimal
Por ejemplo, para convertir a hexadecimal del número 173510 será necesario hacer las siguientes divisiones:

1735 : 16 = 108 Resto: 7


108 : 16 = 6 Resto: C es decir, 1210
6 : 16 = 0 Resto: 6

De ahí que, tomando los restos en orden inverso, resolvemos el número en hexadecimal:

173510 = 6C716
Ejercicio
 Convierte al sistema hexadecimal los siguientes números
decimales: 351910, 102410, 409510
Conversión de números binarios a
octales y viceversa
Decimal Binario Octal
 Cada dígito de un número
octal se representa con tres
0 000 0
dígitos en el sistema binario. 1 001 1
Por tanto, el modo de
convertir un número entre 2 010 2
estos sistemas de 3 011 3
numeración equivale a
"expandir" cada dígito octal a 4 100 4
tres dígitos binarios, o en
"contraer" grupos de tres
5 101 5
caracteres binarios a su 6 110 6
correspondiente dígito octal
7 111 7
Ejemplo

1010010112 = 5138
Ejercicio
Ejercicio 9:
 Convierte los siguientes números binarios en octales:
11011012, 1011102, 110110112, 1011010112
Conversión de números binarios a
hexadecimales y viceversa
Podemos establecer una Decimal Binario Hex
equivalencia directa 0 0000 0
entre cada dígito
hexadecimal y cuatro
dígitos binarios

15 1111 F
Ejemplo
Por ejemplo, para expresar en hexadecimal el número binario 1010011100112 bastará con tomar grupos
de cuatro bits, empezando por la derecha, y reemplazarlos por su equivalente hexadecimal:

 10102 = A16
 01112 = 716
 00112 = 316
 y, por tanto: 1010011100112 = A7316

En caso de que los dígitos binarios no formen grupos completos de cuatro dígitos, se deben añadir ceros
a la izquierda hasta completar el último grupo. Por ejemplo:
1011102 = 001011102 = 2E16
 Ejercicio 11:
Convierte a hexadecimales los siguientes números binarios:
10101001010111010102, 1110000111100002, 10100001110101112
Componentes de un Sistema de Cómputo

Instrucciones vs. Datos

 Instrucción: conjunto de símbolos insertados en una secuencia estructurada o


específica que el procesador interpreta y ejecuta.

 Datos: Símbolos que representan hechos, condiciones, situaciones o valores.


Elementos de información.

55
Componentes de un Sistema de Cómputo

Instrucciones vs. Datos (cont)

 Lenguaje natural:

Suma lo que hay en A con lo que tiene la posición


17 de una secuencia de valores.

 Lenguaje de programación de alto nivel:

A= A + M[17]

 Ensamblador y lenguaje máquina:

ADD A, M(17) → 11000 001 0001 001111

56
Componentes de un Sistema de Cómputo

Hardware (Soporte Físico)

57
Representación de Datos
1. Texto
Una pieza de texto en cualquier idioma es una secuencia de símbolos usados para representar
una idea en ese idioma. Por ejemplo, el idioma inglés utiliza 26 símbolos (A, B, C, ..., Z) para
representar las letras mayúsculas, 26 símbolos (a, b, c,..., z) para representar las letras
minúsculas, 9 símbolos (0, 1, 2,..., 9) para los caracteres numéricos (no números; la diferencia
se verá más adelante) y símbolos (., ?, :, :..., !) para representar la puntuación. Otros símbolos
como el espacio en blanco, la línea nueva y el tabulador se usan para alineación de texto y
legibilidad.

Se puede representar cada símbolo con un patrón de bits. Dicho de otra forma, texto como
la palabra "BYTE", formada por cuatro símbolos, puede representarse como 4 patrones de
bits, en los que cada patrón define un solo símbolo.
2. Códigos
Se han diseñado diferentes secuencias de patrones de bits para representar símbolos de texto.
A cada secuencia se le conoce como código y al proceso de representar los símbolos se le llama
codificación.

ASCII: El Instituto Nacional Norteamericano de Estándares (ANSI: American Nacional Standards


Institute) desarrolló un código llamado Código norteamericano de estándares para intercambio
de información.

Utiliza siete bits para cada símbolo. Esto significa que 128 (27) símbolos distintos pueden
definirse mediante este código.

La lista siguiente destaca algunas de las características de este código:


• ASCII utiliza un patrón de siete bits que varía de 0000000 a 1111111.
• El primer patrón (0000000) representa el carácter nulo (la ausencia de carácter).
• El último patrón (1111111) representa el carácter de eliminación.
• Hay 31 caracteres de control (no imprimibles).
• Los caracteres numéricos (0 a 9) se codifican antes que las letras.
• Hay varios caracteres de impresión especiales.
• Las letras mayúsculas (A ... Z) están antes que las letras minúsculas (a ... z).
• Los caracteres en mayúsculas y en minúsculas se distinguen sólo por un bit. Por ejemplo, el
patrón para A es 1000001; el patrón para a es 1100001. La única diferencia es el sexto bit a
partir de la derecha.
• Hay seis caracteres especiales entre las letras mayúsculas y minúsculas.

ASCII extendido
Para hacer que el tamaño de cada patrón sea de 1 byte (8 bits), a los patrones de bits ASCII se
les aumenta un 0 más a la izquierda. Ahora cada patrón puede caber fácilmente en un byte de
memoria. En otras palabras, en ASCII extendido el primer patrón es 00000000 y el último es
01111111.
ISO
La Organización Internacional para la Estandarización (Internacional Standard Organization),
conocida como ISO, ha diseñado un código que utiliza patrones de 32 bits. Este código
representa hasta 4,294,967,296 (pow(2,32)) símbolos, definitivamente lo suficiente para
representar cualquier símbolo en el mundo actual.
EBCDIC
A principios de la era de los ordenadores, IBM desarrolló un código llamado Código extendido
de intercambio decimal codificado en binario (EBCDIC: Extended Binary Coded Decimal
Interchange Code).

Este código utiliza patrones de ocho bits, de manera que puede representar hasta 256
símbolos. Sin embargo, este código no se utiliza más que en ordenadores mainframe de IBM.

Unicode
Ninguno de los códigos anteriores representa símbolos que pertenecen a idiomas distintos al
inglés. Por eso, se requiere un código con mucha más capacidad. Una coalición de fabricantes
de hardware y software ha diseñado un código llamado Unicode que utiliza 16 bits y puede
representar hasta 65536 (pow(2,16)) símbolos.
Diferentes secciones del código se asignan a los símbolos de distintos idiomas en el mundo.
Algunas partes del código se usan para símbolos gráficos y especiales. El lenguaje Java™ utiliza
Este código para representar caracteres. Microsoft Windows usa una variación de los primeros
256 caracteres.
3. Imágenes

Las imágenes se representan en un ordenador mediante uno de dos métodos: gráficos de


ma- pa de bits o gráficos de vectores (figura 2.6). Esta no es una división tajante, ya que las
imágenes vectoriales suelen admitir la incrustación de imágenes de mapa de bits en su
interior y los programas es- pecializados en dibujo vectorial (Illustrator, Freehand y
CorelDraw!) cada vez tienen más cualidades de los programas de tratamiento de imágenes
de mapa de bits (Photoshop, o Corel Photopaint). Lo contrario también es cierto.

Figura 2.6. Métodos de representación de imágenes.


En este método, una imagen se divide en una matriz de pixeles (picture elements: elementos de
imagen), donde cada pixel es un pequeño punto. El tamaño del pixel depende de lo que se
conoce como re- solución. Por ejemplo, una imagen puede dividirse en 1000 pixeles o 10 000
pixeles. En el segundo caso, aunque hay una mejor representación de la imagen (mejor
resolución), se necesita más memoria para almacenarla.
Después de dividir una imagen en pixeles, a cada pixel se asigna un patrón de bits. El tamaño y el
valor del patrón dependen de la imagen. Para una imagen formada sólo por puntos blancos y
negros (por ejemplo, un tablero de ajedrez), un patrón de un bit es suficiente para representar un
pixel. Un patrón de 0 representa un pixel negro y uno de 1 representa un pixel blanco. Luego los
patrones se registran uno tras otro y se almacenan en el ordenador.

. Método de gráficos de mapa de bits de una imagen blanca y negra.


3.1. Tipos de imágenes de mapa de bits
Una forma muy importante de clasificar las imágenes de mapa de bits es según la cantidad y
tipo de in- formación que se asigne a cada píxel (aunque en algunos aspectos es una
clasificación un poco "mixta" y puede parecer un poco desordenada, se hace así por claridad
explicativa):
1. Imágenes de 1 bit por píxel: en este tipo de imágenes cada celdilla (píxel) sólo puede tener
uno de dos valores: Uno o cero. Como basta 1 bit para definir esa alternativa, se les llama
"imágenes de 1 bit" (también se les llama "imágenes de mapa de bits, de alto contraste, o
imágenes de línea").
Una imagen de
Una imagen de 20×20 200×200 píxeles en
píxeles (400). Podría medir este modo.
2 cm. o un campo de La información es muy
futbol. escasa para reproducir
Los píxeles son sólo una bien este tipo de
división de la información imagen
que contiene.
3.2. Imágenes de escala de grises (8 bits por píxel)

Cada píxel puede tener 256 valores diferentes (las 256 posibilidades combinatorias de un
byte u octeto). Este es el modo de las imágenes digitales de blanco y negro "normales".
Aunque te pueda parecer increíble, en ellas sólo se distinguen hasta 256 tonos diferentes de
gris (y no suelen aparecer todos a la vez, por cierto).

La imagen de
Una imagen de 200×200 píxeles en
20×20 píxeles escala de grises. La
(400) con 1 byte (8 información es
bits) por píxel. suficiente para
Pesará 400 × 8 reproducir
bits, es decir: fotografías en
3.200 bits. blanco y negro.
3.3. Imágenes RGB o Lab (24 bits por píxel)
Para representar imágenes a color, cada pixel coloreado se descompone en tres colores
primarios: rojo, verde y azul (RGB). Luego se mide la intensidad de cada color y se le asigna
un patrón de bits (por lo general ocho bits). En otras palabras, cada pixel tiene tres patrones
de bits: uno para representar la intensidad del color rojo, uno para la intensidad del color
verde y uno para la intensidad del color azul. Por ejemplo, la figura 2.8 muestra cuatro
patrones de bits para algunos pixeles en una imagen a color.

Figura 2.8. Representación de pixeles de color.


Una imagen de 20×20 píxeles La imagen de 200×200 píxeles
(400) con 3 bytes (8 bits) por en modo RGB, el tipo de color
cada píxel. Pesará 400 × 8 × 3 de las televisiones.
bits, es decir: 9.600 bits.
Una imagen de 20×20 La imagen de 200×200
píxeles (400) con 4 bytes (8 píxeles en modo CMYK. Lo
bits) por cada píxel. Pesará que ves es una
400 × 8 × 4 representacion RGB, no
bits, es decir: 12.800 bits. hay monitores CMYK.
Imágenes en color de 8 bits o menos
Es lo que se llama color indexado. Lo que se hace es que se crea una tabla o índice de 256
colores y a cada una de los posibles valores de un píxel se le asigna uno de ellos. Si la
tabla la construimos con menos posibilidades (16, por ejemplo), esa imagen no será un
color indexado de 256 tonos sino uno de 16.

Otros modos especiales de imagen


Son ampliaciones de los modos vistos anteriormente. Puede ocurrir que tengan más de
cuatro canales (debido a que tengan canales de máscara (para efectuar operaciones
especiales) o canales de tinta planas (ficheros multicanal). También puede ser que
aunque tengan sólo dos, tres o cuatro canales, éstos tengan asignado un valor cromático
especial (archivos multicanal). Otra posibilidad es que para representar tonos asignen
más de un byte por píxel, es decir, que sean imágenes que son capaces de representar
más de 256 valores por tonos. Imágenes de este tipo se dan, por ejemplo, como
resultado de escanear en modos con "más profundidad de bits".
3.4. Las imágenes vectoriales
El problema con el método de los gráficos de mapa de bits es que los patrones de bits
exactos para representar una imagen particular deben guardarse en una ordenador.
Posteriormente, si se desea cambiar el tamaño de la imagen debe cambiar el tamaño de los
pixeles, lo cual crea una apariencia difusa y granulada. Una forma muy distinta de formar
una imagen es la de hacerlo mediante operaciones matemáticas. Es decir, en vez de trazar
una retícula con miles o millones de puntos para trazar una línea, le decimos a la máquina
unas coordenadas x1 e y1 le decimos que trace una línea hasta otras coordenadas x2 e y2 .
Así podemos dibujar círculos, cuadrados, triángulos y miles de formas. Sin entrar en
detalles, diremos que esa es la base de los llamados dibujos vectoriales. Los programas de
dibujo vectorial los suelen representar de dos maneras: Representación completa (es decir,
tal cual se imprimirán) y como líneas (es decir, sólo el esqueleto de las formas básicas,
mucho menos pesado para el ordenador).
Un dibujo vectorial en modo de representación completa y visto como líneas básicas, con sus
elementos de dibujo.

Los trazados (líneas curvas o rectas propias de un dibujo vectorial) se pueden modificar fácilmente, se
almacenan en muy poco espacio y además son independientes de la resolución, ya que no dependen
de una retícula dada y basándose en que cualquier operación geométrica es multiplicable o divisible en
su conjunto sin que eso afecte al aspecto del resultado, sino sólo a su tamaño final.
Las imágenes vectoriales de dos dimensiones suelen tener varias partes. Sólo el contorno y el relleno
serán visibles al imprimir. Lo demás son instrumentos de trabajo. La base de estas operaciones son las
llamadas "Curvas Bezier":
• Trazado • Puntos de control o anclaje

(Control points y anchor points). Son


(Path). Es la línea en sí, puede ser curva o recta. los extremos de una línea o los
Puede ser simple (una sola línea o complejo diversos puntos en los que un trazado
(está compuesto por sucesivas líneas con varios complejo cambia de forma.
puntos de control).
• Manejadores o tiradores • Contorno y relleno

El contorno (Outline / path). Es la línea de


(Handlers). Son unas pequeñas líneas borde de un trazado. Puede ser un color
rectas que salen a mayor o menor continuo o una sucesión de puntos, rayas o
distancia de los puntos de control y un motivo repetitivo.
terminan en una especie de bolita. El relleno(Fill). Es lo que llena un trazado
Tirando de esta bolita se puede por sus partes más cerradas puede ser un
modificar la forma del trazado en esa color o un motivo repetitivo (pattern).
zona.
3.5. Audio
El audio es una representación de sonido o música. Aunque no hay un estándar para
almacenar el sonido o la música, la idea es convertir el audio a datos digitales y usar
patrones de bits. El audio por naturaleza es información análoga. Es continuo (análogo), no
discreto (digital). La figura muestra los pasos a seguir para cambiar los datos de audio a
patrones de bits.

Figura: Representación de audio.


Estos pasos son los siguientes:
1. La señal análoga se muestrea. El muestreo significa medir el valor de la señal a intervalos iguales.
2. Las muestras se cuantifican. La cuantificación significa asignar un valor (de un conjunto) a una
muestra. Por ejemplo, si el valor de una muestra es 29.2 y el conjunto es el conjunto de enteros
entre 0 y 63, se asigna un valor de 29 a la muestra.
3. Los valores cuantificados se cambian a patrones binarios. Por ejemplo, el número 25 se cambia al
patrón binario 00011001 (consulte el capítulo 3 para la transformación de números en patrones).
4. Los patrones binarios se almacenan.

4. Video
El video es una representación de imágenes (llamadas cuadros o frames) en el tiempo. Una película es
una serie de cuadros desplegados uno tras otro para crear la ilusión de movimiento. Así que si se sabe
cómo almacenar una imagen dentro de una ordenador, también se sabe cómo almacenar un video;
cada imagen o cuadro cambia a una serie de patrones de bits y se almacena. La combinación de las
imágenes representa el video. Obsérvese que el video actual se comprime normalmente.
5. Notación Hexadecimal

El patrón de bits se diseñó para representar datos cuando éstos se almacenan dentro
de un ordenador. Sin embargo, para la gente es difícil manipular los patrones de bits.
Escribir una serie de números 0 y 1 es tedioso y propenso al error. La notación
hexadecimal ayuda.
La notación hexadecimal se basa en 16 (hexadec es la palabra griega para 16). Esto
significa que hay 16 símbolos (dígitos hexadecimales): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C,
D, E y F. La importancia de la notación hexadecimal se hace evidente cuando se
convierte un patrón de bits a notación hexadecimal.
Cada dígito hexadecimal puede representar cuatro bits y cuatro bits pueden
representarse mediante un dígito hexadecimal.
La tabla siguiente, muestra la relación entre un patrón de bits y un dígito hexadecimal.

Un patrón de 4 bits puede representarse mediante un dígito hexadecimal, y vice- versa.

Patrón de bits Dígito hexadecimal Patrón de Dígito


bits hexadecimal
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F

Tabla: Dígitos hexadecimales


CONVERSIÓN
La conversión de un patrón de bits a notación hexadecimal se realiza por medio de la
organización del patrón en grupos de cuatro y luego hallar el valor hexadecimal para cada
grupo de cuatro bits. Para una conversión de hexadecimal a patrón de bits se convierte cada
dígito hexadecimal a su equivalente de cuatro bits.

Figura: Transformación de binario a hexadecimal y de hexadecimal a binario.

Observe que la notación hexadecimal se escribe en dos formatos. En el primer formato, se


añade una x minúscula (o mayúscula) antes de los dígitos para mostrar que la representación
está en hexadecimal. Por ejemplo, xA34 representa un valor hexadecimal en esta convención.
En otro formato, usted indica la base del número (16) como el subíndice después de cada
notación. Por ejemplo, A3416 muestra el mismo valor en la segunda convención. Se usan ambas
convenciones.
Ejemplo 1
Determine el hexadecimal equivalente del patrón de bits 110011100010.

Solución
Cada grupo de cuatro bits se traduce a un dígito hexadecimal. El equivalente es xCE2.

Ejemplo 2
Determine el hexadecimal equivalente del patrón de bits 0011100010.
Solución

El patrón de bits se divide en grupos de cuatro bits (a partir de la derecha). En este caso,
se añaden dos 0 más a la izquierda para hacer el número total de bits divisible entre
cuatro. Así que usted tiene 000011100010, lo cual se traduce a x0E2.
Ejemplo 3
¿Cuál es el patrón de bits para x24C?

Solución

Cada dígito hexadecimal se escribe como su patrón de bits equivalente y se obtiene


001001001100.
6. Notación Octal

Otra notación usada para agrupar patrones de bits es la notación octal. La notación octal se
basa en 8 (oct es la palabra griega para ocho). Esto significa que existen ocho símbolos
(dígitos octales): 0, 1, 2, 3, 4, 5, 6, 7. La importancia de la notación octal se hace evidente a
medida que se aprende a convertir un patrón de bits en notación octal.
Cada dígito octal representa tres bits y tres bits pueden representarse mediante un dígito
octal. La siguiente tabla, muestra la relación entre un patrón de bits y un dígito octal.
Un patrón de tres bits puede representarse por medio de un dígito octal y viceversa.

Patrón de bits Dígito octal Patrón de bits Dígito octal


000 0 100 4
001 1 101 5
010 2 110 6
011 3 111 7
Tabla: Dígitos octales
Conversión
La conversión de un patrón de bits a notación octal se realiza mediante la organización del
patrón en grupos de tres y la determinación del valor octal de cada grupo de tres bits. Para
la conversión de octal a patrón de bits, se convierte cada dígito octal a su equivalente de
tres bits (figura 2.11).

Figura 2.11. Transformación de binario a octal y de octal a binario

Obsérvese que la notación octal también se escribe en dos formatos. En el primer formato,
se añade 0 (cero) antes de los dígitos para mostrar que la representación está en notación
octal (a veces se utiliza una o minúscula). Por ejemplo, 0634 representa un valor octal en
esta convención. En el otro formato, usted indica la base del número (8) como el subíndice
después de la notación. Por ejemplo, 6348 muestra el mismo valor en la segunda
convención.
Ejemplo 4

Muestre el equivalente octal del patrón de bits 101110010.

Solución

Cada grupo de tres bits se traduce a un dígito octal. El equivalente es 0562, o562 o 5628.

Ejemplo 5

Muestre el equivalente octal del patrón de bits 1100010.

Solución

El patrón de bits se divide en grupos de tres bits (a partir de la derecha). En este caso, se
añaden dos 0 más a la izquierda para hacer el número total de bits divisible entre 3. Así que
usted tiene 001100010, lo cual se traduce a 0142, ol42 o 1428.
Ejemplo 6

¿Cuál es el patrón de bits para 248?

Solución

Cada dígito octal se escribe como su patrón de bits equivalente para obtener 010100.
7. Representación de números
En las secciones previas mostramos cómo el texto, el audio, las imágenes y el video pueden representar- se en
un ordenador mediante patrones de bits. Pospusimos el análisis de la representación de los números porque
ésta es muy diferente de la representación de los datos no numéricos. Algunas de las razones de esta diferencia
son las siguientes:

• Un código de caracteres como el ASCII no es eficiente para representar números. ASCII puede re-
presentar 128 símbolos, pero el sistema decimal necesita sólo 10. (Obsérvese que si se consideran
otros símbolos como +, — y el punto decimal, se necesitan aún más símbolos, pero todavía menos
que 128.) Por ejemplo, si usted quiere almacenar el número 65535 usando ASCII, necesita cinco
bytes (un byte para cada dígito). Pero si el número se representa como un entero sin signo (usted verá
esta representación posteriormente en esta sección), sólo necesita dos bytes.
• Las operaciones con los números (por ejemplo, la suma y la resta) son muy complicadas si los
dígitos de un número se representan en un código de caracteres.
• La representación de la precisión de un número (por ejemplo, el número de lugares después del
punto decimal) requiere muchos bytes. Por ejemplo, para almacenar 23454.00001 se requieren 11
bytes, pero si el mismo número se representa en un punto flotante (esta representación se verá más
adelante en este tema), necesita sólo unos cuantos bytes.
8. Decimal y binario
Dos sistemas de numeración predominan actualmente en el mundo de la computación: decimal
y binario. Analizaremos estos dos tipos distintos de sistemas antes de presentar cómo se
representan los números mediante una ordenador.
8.1. Sistema decimal
Hoy día, el mundo utiliza el sistema decimal para los números desarrollado por matemáticos
árabes en el siglo VIII. Los primeros en usar un sistema numérico decimal fueron los antiguos
egipcios. Los babilonios mejoraron el sistema egipcio al dar un significado a las posiciones del
sistema numérico. Todos comprendemos fácilmente el sistema numérico decimal.
De hecho lo hemos usado tanto que es básicamente intuitivo. Pero, ¿realmente entendemos
por qué la segunda posición en el sistema decimal representa las decenas y la tercera, las
centenas? La respuesta yace en las potencias de la base del sistema, que es 10 en el sistema
decimal. De esta manera la primera posición es 10 elevado a la potencia 0, la segunda posición
es 10 elevado a la potencia 1 y la tercera posición es 10 elevado a la potencia 2.
La siguiente figura muestra la relación entre las potencias y el número 243.
Figura:. Sistema decimal
8.2. Sistema binario
Mientras que el sistema decimal se basa en 10, el sistema binario se basa en 2. Sólo hay
dos dígitos en el sistema binario, 0 y 1. La figura 2.13 muestra los valores posicionales
para un sistema binario y el dígito 243 en binario. En la tabla de posiciones, cada
posición es el doble de la posición anterior. De nuevo, esto se debe a que la base del
sistema es 2. Las potencias binarias deben memorizarse cuando menos hasta 210.

Figura 2.13. Sistema binario.


9. Conversión
9.1. Conversión de binario a decimal
Antes de estudiar cómo los números en forma de patrones de bits se almacenan dentro
de una ordenador, debes comprender cómo convertir manualmente un número del
sistema decimal al sistema binario y viceversa.
Comenzaremos por convertir un número del sistema binario al sistema decimal. Toma el
número binario y multiplica cada dígito binario por el valor de su posición. Como cada bit
binario puede ser sólo 0 o 1, el resultado será ya sea 0 o el valor posicional. Después de
multiplicar todos los dígitos suma los resultados.

Figura 2.14. Conversión de binario a decimal


Ejemplo 1

Convierta el número binario 10011 a decimal.

Solución

Se escriben los bits y sus valores posicionales. Se multiplica el bit por su valor
correspondiente y luego se anota el resultado. Al final, los resultados se suman para
obtener el número decimal.

Binario 1 0 0 1 1
Valores 16 8 4 2 1
posicionales -----------------------------------------
16 + 0 + 0 + 2 + 1
Decimal 19
9.2. Conversión de decimal a binario
Para convertir del sistema decimal al binario utilice la división repetitiva. El número
original, 45 en el ejemplo, se divide por 2. El residuo (1) se vuelve el primer dígito binario
y el segundo dígito se obtiene dividiendo el cociente (22) por 2 para determinar la
siguiente posición. Este proceso continúa hasta que el cociente es 0. La conversión de
decimal a binario se muestra en la figura siguiente.

Figura: Conversión decimal a binario.


Ejemplo 2
Convierta el número decimal 35 a binario.
Solución
Se escribe el número en la esquina derecha. Se divide el número repetidamente por 2 y se
anota el cociente y el residuo. Los cocientes se mueven a la izquierda y el residuo se anota
bajo cada operación. Es- te proceso se suspende cuando el cociente es 0.
9. Representación de enteros
Los enteros son números íntegros (es decir, números sin una fracción). Por ejemplo, 134 es
un entero, pero 134.23 no lo es. Como otro ejemplo, —134 es un entero, pero -134.567 no lo
es.
Un entero puede ser positivo o negativo. Un entero negativo varía del infinito negativo a 0; un
entero positivo varía de 0 al infinito positivo (figura 2.16). Sin embargo, ninguna ordenador
puede almacenar todos los enteros en este intervalo. Para hacerlo, requeriría un número
infinito de bits, lo cual significa una ordenador con una capacidad de almacenamiento
infinita.

Figura 2.16. Intervalo de enteros.


Para usar la memoria de una ordenador de manera más eficiente, se han desarrollado dos
amplias categorías de representación de enteros: enteros sin signo y enteros con signo.
Los enteros con signo también pueden representarse de tres maneras distintas.

Figura: Taxonomía de enteros.


En la actualidad la representación de uso más común es el complemento a dos. Sin embargo,
primero estudiamos las otras representaciones debido a que son más simples y sirven como
una buena base para el complemento a dos.

Un entero sin signo es un entero que no tiene intervalo, su rango está entre 0 y el infinito
positivo. No obstante, como no hay manera de que una ordenador represente a todos los
enteros en este intervalo, la mayoría de los ordenadores define una constante llamada el
entero máximo sin signo. Un entero sin signo varía entre 0 y esta constante. El entero
máximo sin signo depende del número de bits que el ordenador asigna para almacenar un
entero sin signo. A continuación se define el intervalo de los enteros sin
signo en una ordenador, donde N es el número de bits asignado para representar un entero
sin signo:
N
Intervalo: 0 ... (2 - 1)

Tabla: Intervalo de enteros sin signo.


Representación
El almacenamiento de los enteros sin signo es un proceso sencillo según se esboza en los
pasos siguientes:
1. El número cambia a binario.
2. Si el número de bits es menor que N, se añaden 0 a la izquierda del número binario de
manera que haya un total de N bits.

Ejemplo 3
Almacene 7 en un registro de memoria de ocho bits.
Solución

Primero se cambia el número a binario: 111. Se añaden cinco 0 para hacer un total de N (8)
bits: 00000111. El número se almacena en la memoria.
Ejemplo 4
Almacene 258 en un registro de la memoria de 16 bits.
Solución
Primero se cambia el número a binario: 100000010. Se añaden siete 0 para hacer un total
de N (16) bits: 0000000100000010. El número se almacena en la localidad de la memoria.
La siguiente tabla muestra cómo se almacenan los enteros no asignados en dos
ordenadores diferentes: una usa registros de ocho bits y la otra usa registros de 16 bits.
Observe que los números decimales 258 y 24760 no pueden almacenarse en una
ordenador que use registros de ocho bits para un entero sin signo. El número decimal
1245678 no puede almacenarse en ninguna de estos dos ordenadores; a esta condición se
le llama desbordamiento.
Decimal Localidad de 8 bits Localidad de 16 bits
7 00000111 0000000000000111

234 11101010 0000000011101010

258 Desbordamiento 0000000100000010

24760 Desbordamiento 0110000010111000

1245678 Desbordamiento Desbordamiento

Tabla: Almacenamiento de enteros sin signo en dos ordenadores diferentes.

Interpretación
¿Cómo se interpreta una representación binaria sin signo en decimal? El proceso es
simple. Cambie los N bits del sistema binario al sistema decimal.
Ejemplo 5
Interprete 00101011 en decimal si el número se almacenó como un entero sin signo.
Solución
Usando el procedimiento mostrado en la figura anterior, el número decimal es 43.
Desbordamiento
Si se intenta almacenar un entero sin signo como 256 en un registro de memoria de ocho bits, se obtiene una
condición llamada desbordamiento (overflow).

Aplicaciones
La representación de enteros sin signo puede mejorar la eficiencia del almacenamiento debido a que usted no
necesita almacenar el signo de un entero. Esto significa que el registro de bits del entero puede utilizarse para
almacenar el número. La representación de enteros sin signo puede usarse siempre que no se necesiten los
enteros negativos. En seguida se listan algunos casos:
• Conteo. Cuando se cuenta, no se necesitan los números negativos. Usted comienza contando a partir de 1 (a
veces de 0) y continúa.
• Direccionamiento. Algunos lenguajes de computación almacenan la dirección de un registro de memoria dentro
de otro registro de memoria. Las direcciones son números positivos que comienzan a partir de 0 (el primer byte
de memoria) y continúan hasta un número que representa la capacidad de memoria total en bytes. De nuevo, no
se necesitan números negativos. Los enteros sin signo pueden hacer el trabajo fácilmente.
Ejemplos de:
Representación de la información
Números de precisión finita

 El ordenador utiliza el sistema binario (0 y 1) para representar la


información.
 Los ordenadores almacenan los datos en registros de una longitud
finita (8, 16, 32, … 256 bits). Esto significa que el número de dígitos con
el que pueden operar es limitado.
 Ejemplo:
– Si un registro manejara 3 dígitos enteros decimales sólo se podrían representar
los números del 000 al 999.
– Rango limitado: [000, 999]

102
Números de precisión finita

 Precisión (p): número de bits utilizado para representar información


 Con p bits podemos codificar m = 2p símbolos distintos, por tanto, el
conjunto de números que se pueden representar es limitado (finito)
 (Operación inversa) Para codificar m símbolos distintos, necesitamos p
bits, tal que p es el mínimo p que cumple: 2 p-1 < m <= 2p, que
equivale a p >= log2 m = 3.32 · log (m), con p  N

103
Números de precisión finita

 Limitaciones
– Desbordamiento (overflow): El resultado de una operación es mayor que el
máximo número representable con una determinada precisión p
– Agotamiento o subdesbordamiento (underflow): El resultado de una operación es
menor que el mínimo representable con una precisión p
– Errores de redondeo: El resultado de una operación no es representable con la
precisión utilizada. Hay que aproximar al número más cercano posible.

104
Números de precisión finita

 Ejemplos (suponiendo dígitos decimales)


– p=3
– Rango = [000, 999]
– Ejemplo de overflow:
 En teoría : 700 + (400 –300) = (700 + 400) – 300
 En la práctica: 700 + 100 ≠
Overflow!

105
Números de precisión finita

 Por lo tanto:
– El uso de números de precisión finita limita la aritmética de los
ordenadores
– Hay que tener en cuenta la posible aparición de errores
– Hay que idear recursos para trabajar con números negativos y
números reales

106
Sistemas de numeración

 Un sistema de numeración posee un conjunto de símbolos D


– Cada dígito d es un símbolo de D
 Un sistema en base b usa B símbolos
– D= {0, .. , B-1}
 Un número es una cadena de dígitos
… d4d3d2d1d0,d-1d-2 ...  di  D

Punto decimal
107
Sistemas de numeración
Valor de un número en base b

 Sea el número:
… d4d3d2d1d0,d-1 … / di  D = 0, 1, 2, …, B-2, B-1

 El valor que representa el número se calcula teniendo en


cuenta la posición i de cada dígito, su valor, y el valor de la
base B:
 di * Bi = d4·B4+ d3·B3+ d2·B2+ d1·B1+ d0·B0+ d-1·B-1...
Punto decimal

108
Sistemas de numeración
Sistemas más frecuentes

 Los más típicos en informática son:


– Decimal B = 10
– Binario B=2
– Octal B=8
– Hexadecimal B = 16
 Para saber en qué sistema está representado el número se emplea un
subíndice
– 10 para decimal Ej: 938 10
– 2 para binario Ej: 102
– 8 para octal Ej: 345 8
– H ó 16 para hexadecimal Ej: FA893 H

109
Sistemas de numeración
Sistemas más frecuentes

 Decimal:
– B = 10
– D = {0,1,2,3,4,5,6,7,8,9}
– Ejemplo
 459,2 10 = 4·102 + 5·101 + 9·100 + 2·10-1 = 459,2 10
 -459,2 10 = -1 * (4·102 + 5·101 + 9·100 + 2·10-1) = -459,2 10

 Binario:
– B=2
– D = {0,1}
– Ejemplo
 101,12 = 1·22 + 0·21 + 1·20 + 1·2-1 = 5,5 10
 -101,12 = -1 * (1·22 + 0·21 + 1·20 + 1·2-1) = -5,5 10
110
Sistemas de numeración
Sistemas más frecuentes (2)

 Octal:
– B=8
– D = {0,1,2,3,4,5,6,7}
– Ejemplo:
 453,2 8 = 4·82 + 5·81 + 3·80 + 2·8-1 = 299,2510
 -453,2 8 = -1 * (4·82 + 5·81 + 3·80 + 2·8-1) = -299,2510

 Hexadecimal:
– B = 16
– D = {0,1,2,3,4,5,6,7,8,9,A, B, C, D, E, F}
– Ejemplo:
 1BA,F H = 1·162 + 11·161 + 10·160 + 15·16-1 = 442,937510
 -1BA,F H = -1 * (1·162 + 11·161 + 10·160 + 15·16-1) = -442,937510
111
Sistemas de numeración
Ejemplo

102 <> 108 <> 1010 <> 10H


 10 2 = 1·21 + 0·100 = 2 10
 10 8 = 1·81 + 0·100 = 8 10
 10 H = 1·161 + 0·100 = 16 10
 10 10 = 1·101 + 0·100 = 10 10

112
Sistemas de numeración
Cambio de base

Decimal Hexadecimal
Principio de la base

  B y tomar residuos

Conversión por tabla (1)


Conversión por tabla (2)
Octal Binario

113
Sistemas de numeración
Cambio de base

 Binario, octal ó hexadecimal  decimal


– Aplicar el “Principio de la base”, es decir, aplicar la fórmula:

– Ejemplos:  di  Bi
7CDH = 7·162 + C·161 + D·160 =
= 7·256 + 12·16 + 13 =
= 199710

114
Sistemas de numeración
Cambio de base

– 111012 =
= 1·24 + 1·23 + 1·22+ 0·21+ 1·20 =

= 24 + 23 + 22 + 1 =
= 16 + 8 + 4 + 1 = 2910
– 3718 =
= 3·82 + 7·81 + 1·80 =
= 3·64 + 7·8 + 1= 24910

115
Sistemas de numeración
Cambio de base

 Binario  Octal: a través de la tabla


Binario Octal Binario Octal
000 0 100 4
001 1 101 5
010 2 110 6
011 3 111 7

116
Sistemas de numeración
Cambio de base

 Binario  Hexadecimal: a través de la tabla


Binario Hexad. Binario Hexad.
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F
117
Sistemas de numeración
Cambio de base

 Binario a octal y hexadecimal (ejemplos)


11001,101 2 =
= 011 001, 101 2 = 31,5 8
= 0001 1001, 1010 2 = 19, A H
 Octal y hexadecimal a binario (ejemplos)
AB,16 H = 1010 1011, 0001 0110 2
734 8 = 111 011 100 2

118
Sistemas de numeración
Cambio de base

 De decimal a binario (1/2)


– La parte entera del número se obtiene dividiendo por B = 2 la parte
entera del número decimal de partida y los sucesivos cocientes
hasta que cociente sea 0 ó 1. Los residuos (restos) de estas
divisiones son las cifras binarias. El último cociente será el bit más
significativo (izda) y el primer residuo será el bit menos significativo
(dcha).

119
Sistemas de numeración
Cambio de base

 De decimal a binario (continuación)


– La parte fraccionaria se obtiene multiplicando por B = 2
sucesivamente la parte fraccionaria del número decimal de partida y
las partes fraccionarias que se van obteniendo. El número lo
componen las partes enteras (ceros o unos) de los productos
obtenidos.
– El número completo se forma anexando la parte entera y la
fraccionaria obtenidas, separadas por la coma decimal

120
Sistemas de numeración
Cambio de base

29,710 Parte entera Parte decimal


Cocientes Residuos Productos Rdos
29 1 0,7 · 2 = 1,4 1
14 0 0,4 · 2 = 0,8 0
7 1 0,8 · 2 = 1,6 1
3 1 0,6 · 2 = 1,2 1
1 1 …

29,710  11101,10112
121
Representación números enteros

 Binario natural
– Con p bits, Rango = [0, 2p-1]
0 2p -1

- +
Rango
– Ejemplo:
 Con p= 3 bits, rango = [0, 23-1] = [0,7]
– Problema: No permite representar números negativos.

122
Representación números enteros

 Códigos para representar números enteros:


– Signo-magnitud
– Complemento a 1
– Complemento a 2
– En exceso a N

123
Representación números enteros

 Signo magnitud
1. Bit más a la izquierda: bit de signo
 0 para + y 1 para -
2. Resto de bits: valor absoluto
 Ejemplos:
1101s-m = -510

-1010 (precisión 5 bits) = 11010s-m


-1010 (precisión 8 bits) = 10001010s-m

124
Representación números enteros

 Signo magnitud
– Rango con p bits = [- (2p-1-1), 2p-1-1]
 Ejemplo
Con p=5, rango = [-(25-1-1), 25-1-1] = [-15, 15]

- (2p-1 -1) 0 2p-1 -1

- +
Rango

125
Representación números enteros

 Complemento a 1
– Los números positivos se expresan igual que en binario natural.
– Para hacer los negativos se toma el correspondiente positivo y se
cambian los ceros por unos y viceversa
– Para todas las cantidades representadas, el bit de la izquierda vale
0 para el + y 1 para el -

126
Representación números enteros

 Complemento a 1
– Rango con p bits = [-(2p-1-1), 2p-1-1]
 Ejemplo
– Con p=5, rango = [-(25-1-1), 25-1-1] = [-15, 15]

- (2p-1 -1) 0 2p-1 -1

- +
Rango

127
Representación números enteros

 Complemento a 2
– Los números positivos se representan en
binario natural
– Para representar un número negativo, se hace
el complemento a 1 y se suma 1 (en binario)
– El bit de la izquierda vale 0 para los números
positivos y 1 para los negativos

128
Representación números enteros

 Complemento a 2
– Rango con p bits = [-2p-1, 2p-1-1]
– Ejemplo:
– Con p= 5, rango = [-24, 24-1] = [-16, 15]

- 2p-1 0 2p-1 -1

- +
Rango

129
Representación números enteros
 Ejemplos: Decimal a complemento a 2 (p=5 bits)
- 1010 = C1 (01010) = 10101 + 1 = 10110c2
10 10 = 01010c2
 Ejemplos: Complemento a 2 a decimal (p=5 bits)
00111c2 Empieza por 0  es positivo  se interpreta en binario
natural
Resultado: 00111c2 = 710

11011c2 Empieza por 1  es negativo  Se complementa para hallar


el valor absoluto:
11011c2 = C1 (11011) + 1 = 00100 + 1 = 00101 = 5
Resultado: 11011c2 = - 510

130
Representación números enteros

 Exceso a N
– El sistema guarda el valor más N, de forma que el número
resultante es siempre positivo
– Normalmente, si tenemos precisión p: N = 2p-1
– Rango = -2p-1, 2p-1 -1
– Ejemplo: exceso a 128 (27)
–310  -3+128= 12510 (= 011111012)

131
Representación números enteros

 Tabla de códigos, con p = 3

Nº decimal Signo- Complemento Complemento Exceso a N


Magnitud a1 a2
3 011 011 011 111
2 010 010 010 110
1 001 001 001 101
0 000 000 000 100
-0 100 111 --- ---
-1 101 110 111 011
-2 110 101 110 010
-3 111 100 101 001
-4 --- --- 100 000
132
Representación en punto flotante

 La notación en punto flotante, exponencial o científica se usa con


números reales.
– Por ejemplo, la magnitud 13257.3285 se puede expresar:
13257.3285 = 13257.3285·100 = 132573.285·10 -1 = 132573285·10-4 =
1.32573285·104
 Forma general: N = ±M·be Se dice que el número está
– ± → Signo del número normalizado
– M → mantisa en valor absoluto cuando el número más
significativo
– b → base
está en la cifra de las unidades
– e → exponente

133
Representación IEEE 754

 Representación normalizada.
 Base: 2 (no se representa)
N = ± M · 2e
 Sólo es necesario representar el signo, la mantisa y el
exponente

134
Representación IEEE 754

 Se representa:
– Un campo de signo que ocupa 1 bit
– Un campo de exponente (c) que ocupa nc bits
– Un campo de mantisa (m’) que ocupa nm bits

s c m'
1 nc nm

 El orden de almacenamiento es: campo de signo (s), campo de


exponente (e) y campo de mantisa (m).

135
Representación IEEE 754

 Signo:
– 0 para + y 1 para -
 Exponente:
– En exceso a N = 2 p-1-1, con p = número de dígitos reservados para
el exponente. El valor almacenado se denomina característica
(c=e+N)

136
Representación IEEE 754

 Mantisa:
1. Se normaliza el número: El exponente se ajusta de forma tal que el
1 más significativo de la mantisa se encuentre en la posición 0
(posición de las unidades)
2. El campo de la mantisa (m’) se obtiene almacenando sólo la parte
fraccionaria del número normalizado. Es decir, no se almacena la
información "1.”
 Ejemplo: N = 1101.01 = 1.10101·23  m’ = 10101

137
Representación IEEE 754

 Dos formatos:
– Precisión simple (SP) y doble (DP)
 Precisión simple: palabra de 32 dígitos
– ns = 1 bits
– nc= 8 bits
– nm’= 23 bits

s c m'
1 8 23

138
Representación IEEE 754

 Precisión doble: palabra de 64 dígitos


– ns = 1bits
– nc= 11 bits
– nm= 52 bits

s c m'
1 11 52

139
Representación IEEE 754

 Casos especiales:
– Si c=111...1
 Si m’ = 0  + ó -
 Si m’ <> 0  caracteres especiales
– Si c=0000...0. Excepción doble:
 Mantisa es 0.M’
 Exponente: exceso N = 2p-1 - 2

140
Representación IEEE 754

 Precisión simple (Resumen):


– Exceso normal N = 27-1 = 127
– Si c=255 y m’ <> 0  M = carácter especial
– Si c=255 y m’ = 0 M = (-1)s · infinito
– Si 0<c<255  M = (-1)s · 1,m’ · 2c-127
– Si c=0 y m’<>0  M = (-1)s · 0,m’ · 2c-126
– Si c=0 y m’ = 0  M = 0

141
Representación IEEE 754

 Un buen programador debe tener en cuenta cómo se


almacenan los nº reales en el computador, ya que se pueden
presentar problemas inherentes a la forma en que se
representan los nº (con un número limitado de bits).

142
Representación IEEE 754

 Dificultades al obtener:
– resultados intermedios, de números
excesivamente pequeños. Puede ocurrir al
restar dos números casi iguales o al dividir si el
divisor es mucho mayor que el dividendo. En
estos casos puede perderse la precisión de los
cálculos o producirse un desbordamiento a cero.
– resultados numéricos excesivamente grandes,
es decir por desbordamiento. Por ejemplo, al
dividir un número por otro mucho menor que él o
al efectuar sumas o productos sucesivos con
143 números muy elevados.
Representación IEEE 754

 Dificultades al comparar dos números :


– En general una mantisa decimal no puede
representarse exactamente con nm bits, lo que
genera un error "de representación". Esto da lugar a
problemas al comparar la igualdad entre ellos
(máxime si los números se han obtenido con
procedimientos distintos), ya que el computador
considera que dos números son iguales únicamente
si son iguales todos sus bits.
– Luego, la detección de igualdades debe hacerse
con números enteros o considerando que
144 x=y si y solo si |x-y| <error
Códigos alfanuméricos

 Los caracteres alfanuméricos se codifican mediante un


número entero.
– Caracteres alfabéticos
– Caracteres numéricos
– Caracteres de control
– Caracteres especiales
 Códigos: ASCII, Unicode

145
Códigos alfanuméricos

 ASCII: (American Standard Code for Information Interchange)


 Muy utilizado
 7 bits  27 caracteres = 128 caracteres
 Código ASCII extendido: 8 bits  28 = 256 caracteres

146
Códigos alfanuméricos

 Código ASCII

147
Códigos alfanuméricos

 Código de algunos caracteres:

Carácter Código Carácter Código


‘a’ 97 ‘z’ 122
‘A’ 65 ‘Z’ 90
‘0’ 48 ‘9’ 57
NUL 0

148
Códigos alfanuméricos

 Inconvenientes del código ASCII (sobre todo con


Internet):
– Los símbolos codificados son insuficientes para
representar los caracteres especiales que requieren
numerosas aplicaciones.
– Los símbolos y códigos añadidos en la versión ampliada
a 8 bits no están normalizados.
– Están basados en los caracteres latinos, existiendo otras
culturas que utilizan otros símbolos muy distintos.
– Los lenguajes escritos de diversas culturas orientales,
como la china, japonesa y coreana se basan en la
utilización de ideogramas o símbolos, siendo, por tanto,
inoperantes los códigos que sólo codifican letras
individuales.
149
Códigos alfanuméricos

 Unicode (ISO/IEC 10646)


– Propuesto por un consorcio de empresas y entidades que trata de hacer posible
escribir aplicaciones que sean capaces de procesar texto de muy diversas
culturas.
– Propiedades buscadas:
 Universalidad, trata de cubrir la mayoría de lenguajes escritos existentes en la
actualidad: 16 bits  65.356 símbolos
 Unicidad, a cada carácter se le asigna exactamente un único código (idiogramascon
imagen distinta, tienen igual código), y
 Uniformidad, ya que todos los símbolos se representan con un número fijo de bits (16).

150

También podría gustarte