|
TEMA 6: CODIGOS
Se necesita un codigo para representar los caracteres. Los codigos que veremos son de 7 y 8 bits.
A.- NUMEROS ENTEROS
1.- Codigo BCD ó 8421.
Es de 8 bits. Se utiliza para la representacion de numeros. Cada digito lo representamos con 4 bits (Ej: 3 = 0011). Hay 2 tipos:
- Desempaquetado o extendido: Los 4 bits de la derecha representan el numero, y los de la izquierda estan rellenos a 0 o a 1 (segun el fabricante)
Para convertir a BCD extendido desde decimal, hay que traducir termino a termino al binario (con 4 bits), añadiendo 4 bits delante, bien 0 ó 1.
Ej: 12510= 000000010000001000000101
Para convertir de BCD extendido a decimal, separamos los bits de 8 en 8.
Ej: 00001000 00000111 00000101 = 87510
- Empaquetado o condensado: En un byte estan los 2 digitos (no llevan relleno)
Para la conversion, se hace igual que antes (digito a digito, grupos de 4 bits), pero sin relleno.
Ej: 1710 = 0001 0111
2.- Codigo ASCII. (1963)
Es el mas frecuente. Es de 7 bits, aunque a veces tiene un bit extra, el bit de paridad. Organizaciones como ISO o CCITT, dedicadas a la creacion de standars, usan (a veces) codigo ASCII.
3.- Codigo para VideoTexto.
Es codigo ASCII, mas una serie de caracteres: mosaicos. Los caracteres estan organizados en rejillas: G0, G1 y G2.
Para acceder a estos caracteres (a las rejillas G1 y G2), hay que enviar:
- 19H para G2
- 0E para G1.
Para volver a la rejilla G0:
- desde G2 no hace falta enviar ningun caracter
- desde G1, enviamos 0F
- Modos: Afecta a los atributos de:
- Modo pantalla completa: Caracteres de toda la pantalla.
- Modo linea completa: Caracteres de toda la linea.
- Modo paralelo: Caracteres antes del cursor.
- Modo serie: Caracteres despues del cursor.
- Para posicionar el cursor en la pantalla, usamos codigos de control:
- 1F, col, fila.
- 08: izquierda.
- 09: derecha.
4.- Codigo EBCDIC.
Es un codigo de 8 bits. Es de IBM. A veces aparece un bit más (bit de paridad).
B.- NUMEROS REALES.
1.- Punto fijo. El programador es el responsable de colocar el punto decimal. Podemos representar los numeros de 3 formas:
1.- Numeros binarios enteros.
Usamos el MSB para el signo. Los negativos se representan en C-2. Se pueden representar un numero limitado de numeros (con 16 bits: 32767 (215-1), -32768 (-215)).
2.- BCD extendido. El signo se introduce en el MSB (bits de relleno) del ultimo digito, siendo 1011 (B) positivo y 1101 (D) negativo.
3.- BCD empaquetado. El signo se introduce detras del ultimo digito. Son los mismos codigos que para el extendido.
2.- Punto flotante. Este tipo de representacion se introduce para reducir el espacio de almacenamiento.
Tiene 2 partes, mantisa y exponente. Ej: 12 • 108, donde 12 es la mantisa y 8 el exponente.
No obstante lo mas corriente es utilizar el exponente sesgado, para evitar exponentes negativos.
Ej: Sesgo: 5
-123.45: mantisa: -0.12345
exp. sesg.: 3+5=8
-0.12345 +8
Forma normalizada: Un numero en punto flotante esta normalizado si la cifra inmediatamente a la derecha es distinta de 0, y a la izquierda es 0.
Utilizando este tipo de representacion, tenemos el Estandar IEE:
- Sesgo: 64.
- Se utiliza la representacion hexadecimal.
- Usa 32 bits:
- Exponente sesgado: 7 primeros bits.
- Signo: bit siguiente.
- Mantisa: los bits restantes.
- Para codificar un numero en decimal en formato IEE:
1.- Convierto a hexadecimal.
2.- Normalizo.
3.- Hallo el exponente sesgado.
4.- Lo escribo en "binario", y traduzco a hexadecimal.
Ej: 10.5010 en formato IEE;
1.-
1010=A16
0.510 • 2 =12 10002 = 816
10.5010 = A.816
2.-
.A8 • 161
3.-
Exponente sesgado: 64 + 1 = 65
4.-
1000 001 0 1010 1000 0000 0000 0000 0000
8 2 A 8 0 0 0 0
- Para descodificar un numero en IEE a decimal:
1.- Transformo a binario.
2.- Tomo los 7 bits del exponente sesgado, los transformo a hexadecimal, y hallo el exponente.
3.- Tomo el bit de signo.
4.- Tomo la mantisa. Una vez aqui, hallo el numero en hexadecimal.
5.- Transformo de hexadecimal a decimal.
Ej: 84163852
1.-
1000 010 0 0001 0110 0011 1000 0101 0010
2.- Exponente sesgado: 1000010 = 66
Exponente = 2
3.- 0 positivo.
4.- 0001 0110 0011 1000 0101 0010 = 16385216
Mantisa: .163852
En hexadecimal .163852 • 162 = 16.385216
5.- En decimal:
1 • 161 + 6 • 160 + 3 • 16-1 + 8 • 16-2 + 5 • 16-3 + 2 • 16-4 = 22.2210
Aún no hay comentarios para este recurso.
Monografias, Exámenes, Universidades, Terciarios, Carreras, Cursos, Donde Estudiar, Que Estudiar y más: Desde 1999 brindamos a los estudiantes y docentes un lugar para publicar contenido educativo y nutrirse del conocimiento.
Contacto »