Download Introducción a Códigos
Document related concepts
Transcript
Códigos Introducción a Códigos EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 1 Códigos Agenda EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 2 • • • • • • • • • • • • Códigos Códigos numéricos posicionales Códigos numéricos no posicionales Construcción de cantidades Sistema decimal Sistema binario Códigos binarios Códigos alfanuméricos Conversión decimal a binario Conversión binario a decimal Conversión hexadecimal a decimal Conversión de hexadecimal a binario Códigos CODIGOS EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 3 • “En la Teoría de la información, es la forma que toma la información que se intercambia entre la Fuente (el emisor) y el Destino (el receptor) de un lazo informático. Implica la comprensión o decodificación del paquete de información que se transfiere. • El código fundamental en el que se basan los ordenadores es el código binario, el más simple pues solo consta de dos elementos (0) y (1) que combinados de distintas maneras como impulsos eléctricos ponen las bases para la informática.” • Tomado de http://es.wikipedia.org/wiki/C%C3%B3digo el 10 de Febrero del 2007 Códigos Introducción a códigos EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 4 • En un ambiente de sistemas digitales se denomina codificación a la asignación de un significado a una configuración de bits. • Los códigos más utilizados para la generación de información son: – Los códigos numéricos – Los códigos alfanuméricos Códigos Códigos • Códigos numéricos EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 5 – Son los que se utilizan para representar cantidades, contraseñas, y toda aquella información que requiera de dígitos de algún sistema numérico. • Códigos alfanuméricos – Son aquellos que se utilizan para representar el alfabeto o cualquier otro carácter, normalmente se utilizan en la creación de bases de datos de especies e información de las personas. Sistemas numéricos Códigos • Los sistemas numéricos son esenciales en la representación de información. • Tienen algunas características muy importantes: EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 6 – Tienen un conjunto definido de elementos – Cuentan con operadores para tratar los elementos – Una serie de reglas que permiten normar el uso de los operadores con los elementos Sistemas numéricos Códigos SISTEMA EL - 3307 Diseño Lógico Ing. José Alberto Díaz García ELEMENTOS Decimal 0,1,2,3,4,5, 6,7,8,9 Hexadecimal 0,1,2,3,4,5,6, 7,8,9,A,B,C,D ,E,F Octal 0,1,2,3,4,5, 6,7 Binario 0,1 OPERADORES REGLAS + - X ÷ Asociativa Conmutativa Existencia de elemento neutro, etc. + - X ÷ Asociativa Conmutativa Existencia de elemento neutro, etc. + - X ÷ Asociativa Conmutativa Existencia de elemento neutro, etc. ∩∪˜ Asociativa Conmutativa Existencia de elemento neutro, etc. Etc. Página 7 Â significa, la operación complemento Clasificación de los sistemas numéricos • Los sistemas numéricos se pueden clasificar en: – Posiciónales (justa posiciónales) – No posiciónales Códigos • Posiciónales EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 8 – El valor de los elementos que componen el sistema depende del valor que se les ha asignado, y de la posición que ocupan en el número. • No Posiciónales – El valor de los elementos que componen el sistema es fijo, y no depende de la posición que ocupa el símbolo dentro del número. Códigos Valor por la posición EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 9 • El número de elementos permitidos en un sistema de numeración posicional se conoce como base del sistema de numeración. • Si un sistema de numeración posicional tiene base b significa que disponemos de b elementos diferentes para escribir los números, y b unidades forman una unidad de orden superior. Construcción de cantidades • Forma general de construir números en un sistema de numeración posicional. Códigos – Definiciones básicas: EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 10 • • • • • • • • • N: Sistema de numeración b: base del sistema de numeración. Número de símbolos permitidos en el sistema. d: un símbolo cualquiera de los permitidos en el sistema de numeración n: número de dígitos de la parte entera. ,: coma fraccionaria. Símbolo utilizado para separar la parte entera de un número de su parte fraccionaria. k: número de dígitos de la parte decimal. • La fórmula general para construir un número (cualquier número) N en un sistema de numeración posicional de base b es: Sistema decimal • Códigos • EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 11 • • • En el sistema decimal los símbolos válidos para construir números son {0...9} (0 hasta 9, ambos incluidos), por tanto la base (número de símbolos válidos en el sistema) es 10. El teorema fundamental de la numeración aplicado al sistema decimal, será: Los dígitos a la izquierda de la coma fraccionaria representados por dn ... d2 d1 d0 , toman el valor correspondiente a las potencias positivas de la base (10 en el sistema decimal), en función de la posición que ocupan en el número, y representan respectivamente al dígito de las n-unidades (10n), centenas (102=100), decenas (10¹=10) y unidades (100=1). Los dígitos a la derecha de la coma fraccionaria d-1, d-2, d-3 ... d-n representan respectivamente al dígito de las décimas (10-1=0,1), centésimas (10-2=0,01), milésimas (10-3=0,001) y n-ésimas (10-n) . Por ejemplo, el número 1492,36 en decimal, puede expresarse como: Ejemplo de un valor decimal Códigos • Supongamos que deseamos conocer el valor decimal de 345, esto es EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 12 102 101 100 3 4 5 345 = 3 * 10 2 + 4 * 10 1 + 5 * 10 0 Códigos Sistema binario EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 13 • El teorema fundamental de la numeración aplicado al sistema binario es: • En el sistema binario la base es 2, lo que quiere decir que solo disponemos de 2 símbolos {0,1} para construir todos los números binarios. Por tanto, una vez que contamos (sumamos) dos hemos agotado los símbolos disponibles para esa columna, y debemos poner a cero la columna y usar otra columna a la izquierda. Así, si contamos en binario, tras el número 0(2 viene el 1(2, pero si contamos una unidad más debemos usar otra columna, resultando 10(2 Sigamos contando 0(2,1(2,10(2,11(2. Al añadir una unidad a la columna de las unidades, esa columna ha agotado los símbolos disponibles, y debemos formar una unidad de segundo orden, pero como ya hay una, también agotaremos los símbolos disponibles para esa columna, y debemos formar una unidad de tercer orden o 100(2. Así, en el sistema binario 11(2 + 1(2 + 100(2 • • • • Ejemplo de un valor binario a decimal Códigos • Supongamos que deseamos conocer el valor decimal del valor binario 11101, esto es EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 14 24 23 22 21 20 1 1 1 0 1 29 = 1* 2 4 + 1* 23 + 1* 2 2 + 0 * 21 + 1* 20 Códigos Definiciones EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 15 • BIT: Un digito binario, es la menor unidad de información en base 2 y puede ser 0 o 1. • BYTE: Un grupo de ocho bits, y también se le llama caracter. • NIBBLE: Un nibble es la mitad de un byte o cuatro bits. • WORD: Es un grupo de 16 bits, o dos bytes • DWORD: Es un grupo de 32 bits, o dos words o 4 bytes. Definiciones • Kilobyte (KB) – Un kilobyte es 1,024 (o aproximadamente 1,000) bytes. Códigos • Kilobit (Kb) – Un kilobit es 1,024 (o EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 16 aproximadamente 1,000) bits. • Megabyte (MB) – Un megabyte son 1,048,576 bytes (or aproximadamente 1,000,000 bytes). • Note que la B mayúscula indica bytes y la b minúscula indica bits. Códigos Sistemas de numeración no posicionales EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 17 • El sistema de los números romanos no es estrictamente posicional. • Por esto, es muy complejo diseñar algoritmos de uso general (por ejemplo, para suma, restar, multiplicar, dividir). • Como ejemplo, en el número romano XCIX (99 decimal) los numerales X (10 decimal) del inicio y del fin de la cifra equivalen siempre al mismo valor, sin importar su posición dentro de la cifra. Códigos binarios Códigos • Existen diferentes códigos binarios: EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 18 – Binario natural – BCD – Exceso tres – Gray – Johnson – Biquinario – 2 entre 5 – Hamming Código BCD (Binary Coded Decimal) • Representa los dígitos decimales por secuencias de bits en el sistema binario. Códigos • BCD es la abreviatura de Binary Coded Decimal es decir, decimal codificado en binario. EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 19 ¾ Cada secuencia de 4 bits es una palabra del código. ¾ Cada dígito decimal se le asocia una secuencia de 4 bits. Código 7, puede interpretarse según: 0·23+1·22+1·21+1·20 = 0·8 + 1·4 + 1·2 + 1·1 = 7 BCD y Decimal • Ejemplo 1. Códigos – Representar en BCD el valor 12 decimal. EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 20 • Para representar el número decimal 12 se requieren 8 bits, o dos palabras de código BCD. • 12 = 0001 0010 • ¿Cuántas palabras se requieren para representar 789 ? Códigos Código Hexadecimal EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 21 • El código hexadecimal contiene los elementos del sistema decimal y las letras A, B, C, D, E, F. • La base del sistema es 16. • ¿Cual será la representación F0B1 en decimal? • Código F0B1, puede interpretarse según: • F·163+0·162+B·161+1·160 = • 15·163+0·162+11·161+1·160 = 61617 • ¿Para que se utilizan los números hexadecimales. • Representan a los números binarios de forma corta, y es muy simple de transformar de HEX a BIN y vise versa. Decimal Binario Simbolo 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F Código Gray Códigos • Los códigos Grey tienen un mínimo de cambios entre su antecesor y el sucesor. EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 22 – De una representación numérica a la siguiente solo cambia un bit. – Las principales aplicaciones se encuentran en donde hay cambios únicos en la entrada. • Tabla de posición de una molino • Posición de un eje rotacional Códigos Código Gray EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 23 Binario Grey 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 Binario Codificado en Decimal Códigos • Se necesitan de cuatro bits para representar cada dígito decimal. EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 24 – Cada grupo de cuatro bits, no se utilizan 6 posibles valores – Hay muchos códigos posibles, el BCD natural es el más común. – BCD no es tan eficiente como el binario. • BCD es fácil de convertir a decimal (realmente es decimal con diferentes símbolos). Códigos Numéricos Ejemplo 2 Transmisión de símbolos BCD Códigos A través de un par de cables, puede enviarse una secuencia de cifras decimales codificadas en binario. Si enviamos primero las unidades, luego las decenas y después las centenas; y si se envía primero el bit menos significativo, se tendrá que la siguiente forma de onda representa el número 923: EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 25 Transmisión serie de un símbolo BCD. Códigos Numéricos Códigos Si se dispone de cuatro líneas, más una referencia, se puede enviar una cifra decimal paralelo. Las líneas se han identificado de acuerdo al peso. EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 26 Transmisión paralela símbolo BCD. Códigos Numéricos Códigos • Paridad EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 27 – En aplicaciones digitales de movimiento de información, es importante detectar cualquier tipo de error en la información recibida. – Cuando la probabilidad de error no es muy alta, se ha probado ser efectivo un sistema denominado chequeo de paridad. – Esta técnica emplea un bit extra, llamado de paridad, cuyo valor se selecciona dependiendo de la cantidad de unos que hay en los datos. Esto es si la cantidad de unos es una cantidad par el bit se pone en 1 y si es impar se pone en cero. Códigos Códigos Numéricos EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 28 Decim al Paridad Im par 0 1000 1 0001 2 0010 3 1011 4 0100 5 1101 6 1110 7 0111 Paridad Par 0000 1001 1010 0011 1100 0101 0110 1111 Códigos Numéricos Códigos Se envían 4 bits en paralelo más uno de paridad. Tx Rx Decim al Paridad Im par 0 1000 1 0001 2 0010 3 1011 4 0100 5 1101 6 1110 7 0111 Paridad Par 0000 1001 1010 0011 1100 0101 0110 1111 EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 29 ¿Cómo se podría construir un generador y detector de paridad ? Códigos Numéricos Códigos Solución: EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 30 P: Bit de paridad DP: Bit detector de paridad Códigos Código biquinario EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 31 • El código biquinario es un sistema de numeración usado en ábacos y en algunos de los primeros computadores, como el Colossus. • El término biquinario se refiere a que el código tiene una parte de dos estados (bi) y otra de cinco estados (quin). • Existen varias representaciones de un decimal codificado en biquinario, ya que: – el componente de dos estados se puede representar tanto con uno como con dos bits – y el componente de cinco estados, tanto con tres como con cinco bits Código 2 entre 5 Códigos • El código 2 entre 5, a veces confundido con el biquinario, • Es utilizado para la detección de errores en transmisiones digitales. • Existen varios métodos para la codificación mediante el sistema 2 entre 5. EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 32 – Se trata de un código ponderado donde los pesos para los 4 primeros bits son 1,2,3,6. – El bit más significativo se utiliza para completar la paridad par. – Tiene dos características a tener en cuenta: • No existe codificación para el 0; hay que “inventarse” una • Sólo puede haber dos bits a 1 entre los cinco bits (de ahí su nombre) – Si partimos de los pesos directos vemos que podemos codificar los números 1, 2, 3 y 6 utilizando un solo bit. – En estos números se activa el bit de paridad a 1 para cumplir la paridad par. Códigos Alfanumérico • “CODIGO ALFANUMÉRICO Códigos – Con un código de un bit podemos representar 2¹=2 combinaciones. Para representar los diez dígitos (0-9) y las 26 letras minúsculas necesitamos como mínimo 6 bits (25=32, 26=64 combinaciones). Si además se quieren representar las letras mayúsculas y otros símbolos de utilidad necesitaremos un mayor número de bits. En general con el término de carácter o código alfanumérico se incluyen: EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 33 • • • • Las letras: a-z y A-Z. Los números: del 0 al 9 Los símbolos: @ ! # $ + - * / = % ( ) [ ] etc.... Los caracteres de control: <CR>, <LF>, etc. – La información que el ordenador debe procesar está formada por letras, números y símbolos especiales. – Los ordenadores trabajan con voltajes fijos que se representan con los números 0 y 1 que forman la base de un sistema binario. Con la presencia o ausencia de tensión eléctrica no sólo se pueden representar números sino los estados de una variable lógica Con un conjunto de variables lógicas se puede definir cualquier sistema lógico.” • Tomado de http://es.wikipedia.org/wiki/C%C3%B3digos_alfanum%C3%A9ricos el 10 de Febrero del 2007 Códigos Alfanuméricos Códigos • Códigos Alfanuméricos EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 34 – La mayor parte de los dispositivos periféricos empleados en sistemas de computación para comunicar al hombre con la máquina, permiten representar las letras minúsculas y mayúsculas, dígitos decimales, signos de puntuación y caracteres especiales. – Uno de los más empleados es el código ASCII. Este es un código de 7 bits, más uno de paridad. Permite representar 128 símbolos. Su nombre es una abreviación de "American Standard Code for Information Interchange". – En computadores personales se está empleando 8 bits para representar caracteres, lo cual permite denotar 256 símbolos. Esto ha sido especialmente útil en aplicaciones de procesamiento de textos en diversos idiomas, pues pueden incluirse letras con diferentes tipos de acentos. Códigos Alfanuméricos Códigos • Son los códigos binarios utilizados para representar el alfabeto y los caracteres numéricos. • Los dos más comunes son: EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 35 – ASCII, 7 bits, con 128 símbolos – EBCDIC, 8 bit, 256 símbolos • Los problemas surgen cuando se comparan los valores y los símbolos. – Si se compara de ‘A’ a ‘a’ en el sistema ASCII ocurren algunos errores respecto al sistema EBCDIC. Códigos Código ASCII EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 36 TOMADO DE: http://images.google.co.cr/imgres?imgurl=http://www.ecowin.org/aulas/resources/tables/asciitable.jpg&imgrefurl=http://www.ecowin.org/ascii.htm&h=742&w=1050&sz=105& hl=es&start=1&tbnid=llAxgig9laYZSM:&tbnh=106&tbnw=150&prev=/images%3Fq%3Dascii%2Btable%26svnum%3D10%26hl%3Des%26sa%3DG EL 10 DE FEBRERO DEL 2007 Conversión de decimal a binario Método 1 Códigos Convertir el número 192 decimal a su equivalente binario EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 37 192/2 = 96 con un residuo de 96/2 = 48 con un residuo de 0 48/2 = 24 con un residuo de 0 24/2 = 12 con un residuo de 0 12/2 = 6 con un residuo de 0 6/2 = 3 con un residuo de 0 3/2 = 1 con un residuo de 1 1/2 = 0 con un residuo de 1 0 Escriba todos los residuos, en forma reversa, y obtiene el número binario 11000000. Conversión de decimal a binario Método 2 Convierta el número decimal 192 a su equivalente binario. Primero encuentre el mayor número que es potencia de 2 que puede substraerse del número original. Repita el proceso hasta que no se pueda sustraer nada. Códigos 192-128 = 64-64 = EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 38 64 0 128 utilizado 64 utilizado 32 utilizado 16 utilizado 8 utilizado 4 utilizado 2 utilizado 1 utilizado 1 1 0 0 0 0 0 0 Escriba los unos y los ceros de arriba hacia abajo, y se obtiene el número 11000000. Códigos Conversión de Binario a Decimal EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 39 Convierta el número decimal 213 a binario. Primero encuentre el mayor número potencia de 2 que puede sustraerse al número original. Repita el proceso hasta que no quede nada a que sustraer. 213-128 = 85 128 utilizado 1 85-64 = 21 64 utilizado 1 *(32 no se puede sustraer de 21) 32 utilizado 0 21-16 = 5 16 utilizado 1 *(8 no se puede sustraer de 5) 8 utilizado 0 5-4 = 1 4 utilizado 1 *(2 no se puede sustraer de 1) 1-1 = 0 2 utilizado 0 1 utilizado 1 Escriba los unos y ceros de arriba hacia abajo, y se obtiene el número binario 11010101. Conversión de Binario a Decimal Método 2 Códigos De la derecha a la izquierda, escriba los valores en potencias de dos sobre cada uno de los dígitos binarios. Luego sume los valores donde hay unos. 27 128 1 26 64 0 25 32 1 24 16 1 23 8 0 22 4 1 21 2 0 EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 40 128 + 32 + 16 + 4 + 1 = 181 20 1 1 Conversión de hexadecimal a decimal Base 16 Códigos 16^4 16^3 16^216^116^0 Decimal 65.536 4.096 256 16 1 1 2 A 298 EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 41 •Cada posición del dígito está representado por una potencia de 16 •Dado el número hexadecimal 12A •1 X 256 = 256 •2 X 16 = 32 •A X 1 = +10 298 (A = 10 en hex) Conversión de hexadecimal a binario Para convertir un número hexadecimal a binario, cada dígito hexadecimal representa 4 dígitos binarios. Dado el número hexadecimal A 3 A es el número decimal 10 Códigos 10 en binario es 1 0 1 0 EL - 3307 Diseño Lógico Ing. José Alberto Díaz García Página 42 8 4 2 1 (las posiciones binarias son - 4 bits) 1 0 1 0 3 es el valor de 3 3 en binario es 0 0 1 1 8 4 2 1 (las posiciones binarias son – 4 bits) 0 0 1 1 hex A 3 = 1 0 1 0 0 0 1 1 en binario