41
Datos de tipo entero
Es una representación del conjunto de números enteros.
Es necesario utilizar un espacio finito y fijo para cada dato.
El número se debe representar en binario y almacenarlo con un número fijo de bits.
El número de datos distintos que se pueden generar es 2n, donde n es el número de bits que se utiliza en la representación. Por tanto, si se modifica el número de bits, se obtienen distintos tipos enteros.
Cualquier operación con datos de tipo entero es exacta salvo que se produzcan desbordamientos.
42
Datos de tipo entero
Enteros sin signo
No hace falta codificación, todos los bits del dato representan el valor del número expresado en binario natural (sistema de numeración base 2).
Enteros en signo y magnitud
Se basan en tener 1 bit para el signo, y el resto de la cifra (n-1 bits) para codificar el número entero a representar.
El signo se representa con el bit mas significativo del dato
Se distingue entre números:
Positivos: Se almacenan con el bit de signo puesto a 0
Negativos: Se almacenan con el bit de signo puesto a 1
Permiten almacenar números desde
-2 (n-1), hasta + (2(n-1)) – 1
Bytes: -128 a +127
Words (de 2 Bytes): -32768 a 32767
Cont…
Enteros en complemento a 1 ó 2
El signo se representa de la misma forma que en el caso de signo y magnitud
El resto de los bits representan:
Si el número es positivo: el valor absoluto del número en binario natural
Si es negativo: su complemento a 1 ó 2
Representación con exceso o sesgada
Se le suma al número N un sesgo S, de forma tal que el número resultante siempre es positivo, no siendo necesario reservar un bit de signo.
Representación con dígitos decimales codificados en binario (BCD)
En ocasiones, los datos de tipo entero se representan internamente codificando aisladamente cada dígito decimal con cuatro dígitos binarios
De esta froma, en un byte se pueden representar 2 dígitos decimales
En la representación BCD de datos con signo se suelen utilizar 4 bits par representar al signo, por ejemplo 0000 para positivo y 1001 para negativo
44
Datos de tipo real
Es una representación del conjunto de números reales
Cuando se opera con números muy grandes se suele utilizar la notación exponencial, también llamada notación científica o notación en como flotante.
Todo número N puede ser representado en la forma:
N = M . B E
Donde M es la mantisa, B es la base 10 y E el exponente
Los microprocesadores actuales disponen internamente de un procesador de coma flotante (Float Point Unit, FPU) que contiene circuitos aritméticos para operar con este tipo de datos.
No permite el almacenamiento de números muy grandes o muy pequeños, lo que conlleva a que se produzcan desbordamientos y agotamientos.
45
Datos de tipo real
Coma fija: La posición está fijada de antemano y es invariante.
Cada número se representa por n bits para la parte entera y m bits para la parte fraccionaria .
Nos ahorramos el punto
Dependerá de n y de m
Se puede producir un error de truncamiento.
Un mismo número en punto fijo puede representar a muchos números reales.
1.25 (m=2), 1.256 (m=2), 1.2589 (m=2), 1.2596 (m=2), etc
El MSB es el signo
No todos los números reales pueden representarse con este formato
46
Cont…
Coma flotante: La posición de la coma es variable dependiendo del valor del exponente. Es de la forma:
m 10exp ( En decimal) m 2exp(En binario)
En decimal en la notación científica podemos escribir:
1.9 x 109 o en forma corta 1.9E9
Tiene dos campos uno contiene el valor de la mantisa y el otro de valor del exponente.
El bit más significativo de la mantisa contiene el signo.
Existen tres formatos:
SignoN Mantisa Exponente ? Directo
SignoM Exponente Mantisa ? Comparación rápida
SignoE Exponente SignoN Mantisa ? Precisión ampliada
47
Cont…
Como un valor puede tener más de una representación, se normaliza la representación haciendo que el primer bit significativo de la mantisa ocupe la posición inmediatamente a continuación del signo.
Trabajando mantisas normalizadas siempre el primer bit de la mantisa es el complemento del bit de signo, por lo que no es necesario incluirlo en la codificación.
El bit que no se incluye recibe el nombre de bit implícito.
Las características de los sistemas de representación en coma flotante son:
El exponente se representa en exceso a 2n-1, siendo n el número de bits del exponente.
La mantisa es un número real normalizado, sin parte entera.
Su representación puede ser en cualquier sistema: módulo y signo, Complemento a 1 o Complemento a 2.
La base de exponenciación es una potencia de dos.
48
Cont…
Representación en simple precisión: Palabra de 32 bits.
Signo Exponente Mantisa
31 30 23 22 0
1 bit 8 bits 23 bits
Un ejemplo en C es el float
49
Cont…
Representación en doble precisión: Palabra de 64 bits.
Signo Exponente Mantisa
63 62 52 51 0
1 bit 11 bits 52 bits
Un ejemplo en C es el Double
50
Cont…
Ejemplo 1:
-9.2510
Sean m =16, nE = 8 (? nM = 7) ,
Pasamos a binario ? 9.2510 = 1001.012
Normalizamos ? 1.00101 x 23
Resultado de la Normalización ? 1001.012 = 0010100
Exponente (exceso a 27-1) 310 = (127 +3)2=10000010
1 1000 0010 0010 100
SM E M
m: es el número de bit con que se representa el número
nE : es el número de bits que se usan para representar el exponent
nM : es el número de bits que se usan para representar el
51
Cont…
52
Principales tipos de datos aritméticos utilizables en el lenguaje de programación C (compilador Borland C++ para PC)
53
Representación de textos
Códigos de Entrada/Salida
Asocian a cada símbolo una determinada combinación de bits.
a = {0,1,2,…,8,9,A,B,…,Y,Z,a,b,…,y,z,*,",/,…}
b = {0,1}n
Con n bits podemos codificar m=2n símbolos distintos
Para codificar m símbolos distintos se necesitan n bits,
n = log2 m = 3.32 log (m)
54
Ejemplo:
Para codificar las cifras decimales {0,1,2,3,4,5,6,7,8,9} se necesitarán :
n = 3.3221 log(m) = 3.322 bits
es decir, 4 bits (para que se cumpla la relación)
Por lo menos se necesitan 4 bits, pero pueden hacerse codificaciones con más bits de los necesarios. Tabla 2
Con 4 bits no se usan 24 – 10 = 6 combinaciones, y con 5 bits 25 – 10 = 22 combinaciones.
55
Cont… Tabla 2
56
Ejemplos de Códigos de E/S
Código ASCII
El código ASCII se utiliza para representar caracteres.
Formado por 8 bits (cada carácter se expresa por un número entre 0 y 255)
Es un código estándar, independiente del lenguaje y del ordenador
Podemos distinguir dos grupos:
Los 128 primeros caracteres se denominan código ASCII estándar
Representan los caracteres que aparecen en una maquina de escribir convencional
Los 128 restantes se denominan código ASCII ampliado
Este código asocia un numero a caracteres que no aparecen en la maquina de escribir y que son muy utilizados en el ordenador tales como caracteres gráficos u operadores matemáticos.
Código EBCDIC
Extended Binary Coded Decimal Interchange Code
Código Ampliado de Caracteres Decimales Codificados en Binario para Intercambio de Información
Es un sistema de codificación de caracteres alfanuméricos.
Cada carácter queda representado por un grupo de 8 bits.
Código Unicode
Es de 16 bits, por lo que puede representar 65536 caracteres.
Es una extensión del ASCII para poder expresar distintos juegos de caracteres (latino, griego, árabe, kanji, cirílico, etc).
57
Representación de Imágenes
Las imágenes se adquieren por medio de periféricos tales como escáneres, cámaras de video o cámaras fotográficas.
Una imagen se representa por patrones de bits, generados por el periférico correspondiente.
Formas básicas de representación:
Mapa de bits
Mapa de vectores
58
Imágenes de Mapas de BitsEstructura de una imagen con resolución de 640×580 elementos.
La imagen se considera dividida en una fina retícula de celdas o elementos de imagen (pixels).
A cada elemento de imagen (e.i.) se le asocia un valor (atributo) que se corresponde con su nivel de gris (b/n) o color, medio en la celda.
La resolución es
(nº e.i. horizontales x nº e.i. verticales).
Se memoriza, almacenando ordenada y sucesivamente los atributos de los distintos elementos de imagen.
59
Características de algunas formas de imágenes digitalizadas
La calidad de la imagen depende de
La resolución y
Codificación del atributo (número de bits)
La capacidad depende de dichos parámetros:
Ejemplo: imagen de 16 niveles de grises (b/n) y con resolución de 640×350: 110 Kbytes
Ejemplo: imagen con resolución XGA con 256 niveles para cada color básico: 2,25 MBytes
60
Imágenes de Mapas de Vectores
Se descompone la imagen en una colección de objetos tales como líneas, polígonos y textos con sus respectivos atributos o detalles (grosor, color, etc.) modelables por medio de vectores y ecuaciones matemáticas que determinan tanto su forma como su posición dentro de la imagen.
Para visualiza una imagen, un programa evalúa las ecuaciones y escala los vectores generando la imagen concreta a ver.
Características:
Sólo es adecuada para gráficos de tipo geométrico (no imágenes reales)
Ocupan mucho menos espacio que los mapas de bits.
61
Compresión De Datos
Diversas aplicaciones (multimedia, etc.) requieren utilizar archivos de gran capacidad.
Volumen requerido para su almacenamiento en disco muy elevado
el tiempo de transmisión del archivo por una red resulta excesivo
Solución: transformación denominada compresión de datos.
El archivo, antes de ser almacenado o transmitido se comprime mediante un algoritmo de compresión, y
cuando se recupera para procesarlo o visualizarlo se aplica la técnica inversa para descomprimirlo.
Técnicas:
Codificación por longitud de secuencias
Codificación relativa o incremental
Codificación dependiente de la frecuencia
Codificación con diccionario adaptativo
Codificación Lempel-Ziv
Compresión GIF (imágenes)
Compresión JPEG (imágenes)
Compresión MPEG (imágenes)
Compresión MP3 (sonidos)
62
Detección de errores en la Información Codificada
Cuantas menos codificaciones se desperdicien el código es más eficiente.
La eficiencia de un código (?) se define como el cociente entre el número de símbolos que se representan realmente, m, dividido para el número de símbolos que en total pueden representarse.
Con códigos binarios en que m = 2n, se tiene:
? = m/ m’ = m/2n , con 0< ? < 1
Cuanto más eficiente sea el código, entonces ? será mayor.
Página anterior | Volver al principio del trabajo | Página siguiente |