Códigos Binarios de Representación de Datos M. en C. Erika Vilches Parte 1 Código Gray • No tiene pesos asignados a las posiciones de los bits y no es un código aritmético. • Principal característica: Muestra 1 solo bit cambiado de una palabra del código a la siguiente en la secuencia. • Encuentra aplicaciones en dispositivos de entrada/salida y en algunos tipos de convertidores analógicos a digital. • Puede tener cualquier número de bits. • Ejemplo de cambio de 1 solo bit: 3 a 4 = 0010 a 0110, mientras que en binario sería de 0011 a 0100, un cambio de 3 bits Tabla de código Gray a 4 bits Binario a Gray 1. El bit mas significativo (más a la izquierda) en código Gray es el mismo que el bit correspondiente en el número binario 2. De derecha a izquierda, sumar cada par adyacente de bits en binario para obtener el siguiente bit en código Gray. Descartar los carries. Ejemplo: Convertir el número binario 10110 a código Gray El código Gray es 11101 Gray a Binario 1. El bit mas significativo (más a la izquierda) en el número binario es el mismo que el bit correspondiente en código Gray 2. De derecha a izquierda, sumar cada bit binario generado al bit en código Gray en la siguiente posición adyacente. Descartar los carries. Ejemplo: Convertir el código Gray 11011 a número binario El número binario es 10010 Ejemplos • Convertir el número binario 11000110 a código Gray • Convertir el código Gray 10101111 a binario Ejercicio: a) Convertir el número binario 101101 a código Gray b) Convertir el código Gray 100111 a número binario ASCII • American Standard Code for Information Interchange • Universalmente aceptado • Utilizado en la mayoría de las computadoras y otros equipos electrónicos • La mayoría de los teclados de computadora están estandarizados con el código ASCII • Tiene 128 caracteres y símbolos representados por un código binario de 7 bits • Se puede considerar que es un código de 8 bits con el bit más significativo siempre en 0 • • Este código de 8 bits va de 00 a 7F en hexadecimal • Los demás caracteres son símbolos gráficos que se pueden imprimir o desplegar. Incluyen las letras del alfabeto (mayúsculas y minúsculas), los 10 dígitos decimales, signos de puntuación, y otros símbolos comúnmente utilizados Los primeros 32 caracteres ASCII son comandos no gráficos, no se despliegan, son usados para propósitos de control (Ej: “null”, “line feed”, “start of text”, “escape”, etc...) y permiten a los dispositivos comunicarse (computadora, impresora, etc.) Ejemplo: Determine los códigos ASCII binarios que se envían desde el teclado de la computadora cuando se escribe el siguiente texto. También exprese los códigos en hexadecimal Hola Mundo! Símbolo Binario Hexadecimal H o l a Espacio M u n d o ! 1001000 1101111 1101100 1100001 0100000 1001101 1110101 1101110 1100100 1101111 0100001 48 6F 6C 61 20 4D 75 6E 64 6F 21 Ejercicio: Determine la secuencia de códigos ASCII requerida por el siguiente string y expréselos en hexadecimal. Hello World! ASCII Extendido • 128 caracteres adicionales que IBM adopto para uso en sus PCs. • Debido a la popularidad de la PC, estos carateres ASCII extendidos se han utilizado en otras aplicaciones aparte de las PCs y se han convertido en un estándar no oficial. • Los caracteres de ASCII Extendido son representados por un código de 8 bits (de 80 a FF hexadecimal) Contiene caracteres en las siguientes categorías generales: 1. Caracteres alfabéticos no ingleses 2. Símbolos de moneda no ingleses 3. Letras griegas 4. Símbolos matemáticos 5. Caracteres para gráficos 6. Caracteres para gráficos de barras 7. Caracteres sombreados Exceso 3 BCD • Utiliza 4 bits para representar los números decimales del 0 al 9 • Deriva su nombre del hecho de que cada representación decimal en el código Exceso 3 es mayor que el código BCD por 3 • Es un código sin pesos • Se utiliza en algunas computadoras antiguas Ejemplo: Codifique el número 127 en el código Exceso 3 127 → 0100 0101 1010 • Su ventaja sobre BCD: Un número decimal puede ser complementado a 9 (para restarlo) tan fácilmente como un número binario puede ser complementado a 1. Izquierda: Complemento a 9. Derecha: Complemento a 1 Unicode • Código para el intercambio de información internacional • • Alfabeto de 16 bits • Es el set de caracteres predeterminado de Java actualmente. Tiene la capacidad de codificar la mayoría de los caracteres usados en cada lenguaje del mundo • Cada letra es relacionada con un punto de código (code point) • Tiene el mismo punto de código sin importar la fuente o tamaño utilizada • El punto de código es un número. Ej: U+0645. - U+ significa Unicode - 0645 es un número en hexadecimal. • Charmap (utileria de Windows 2000/XP) permite conocer los puntos de código. • Ejemplo: Hello = U+0048 U+0065 U+006C U+006C U+006F Espacio de código Unicode • Define dos métodos de mapeo • UTF → Unicode Transformation Format • UCS → Universal Character Set • Los números en los nombres de las codificaciones indican el número de bits para UTF o el número de bytes para UCS • UTF-8 (compatible con ASCII) y UTF-16 son las codificaciones más comunes • Si no sabe como decodificar, pone ? ¿Cómo saber la codificación? • E-mail: agregar en el encabezado Content-Type: text/plain; charset=“UTF-8” • Página Web: el encabezado debe de empezar de la siguiente manera: <html> <head> <meta http-equiv=“Content-Type” content=“text/html;charset=utf-8”> Garantiza que se leerá antes de empezar a desplegar los caracteres especiales de cada lenguaje.