Introducción a Página 1
Agenda Página 2 numéricos posicionales numéricos no posicionales Construcción de cantidades Sistema decimal Sistema binario binarios alfanuméricos Conversión decimal a binario Conversión binario a decimal Conversión hexadecimal a decimal Conversión de hexadecimal a binario
CODIGOS 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. Página 3 Tomado de http://es.wikipedia.org/wiki/c%c3%b3digo el 10 de Febrero del 2007
Introducción a códigos 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 Página 4
Página 5 numéricos 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. 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 Los sistemas numéricos son esenciales en la representación de información. Tienen algunas características muy importantes: 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 Página 6
Sistemas numéricos SISTEMA ELEMENTOS OPERADORES REGLAS Decimal 0,1,2,3,4,5, 6,7,8,9 + - X Asociativa Conmutativa Existencia de elemento neutro, etc. Hexadecimal Octal Binario 0,1,2,3,4,5,6, 7,8,9,A,B,C,D,E,F 0,1,2,3,4,5, 6,7 0,1 + - X + - X Asociativa Conmutativa Existencia de elemento neutro, etc. 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 Página 8 Los sistemas numéricos se pueden clasificar en: Posiciónales (justa posiciónales) No posiciónales Posiciónales 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.
Valor por la posición 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. Definiciones básicas: 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: Página 10
Sistema decimal 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 d n... d 2 d 1 d 0, 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 (10 n ), centenas (10 2 =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: Página 11
Ejemplo de un valor decimal Supongamos que deseamos conocer el valor decimal de 345, esto es 10 2 10 1 10 0 3 4 5 2 1 345 = 3 * 10 + 4 * 10 + 5 * 10 0 Página 12
Sistema binario El teorema fundamental de la numeración aplicado al sistema binario es: Página 13 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 Supongamos que deseamos conocer el valor decimal del valor binario 11101, esto es 2 4 2 3 2 2 2 1 2 0 1 1 1 0 1 4 3 2 1 29 = 1*2 + 1*2 + 1*2 + 0*2 + 1*2 0 Página 14
Definiciones 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. Página 15
Definiciones Kilobyte (KB) Un kilobyte es 1,024 (o aproximadamente 1,000) bytes. Kilobit (Kb) Un kilobit es 1,024 (o aproximadamente 1,000) bits. Megabyte (MB) Un megabyte son 1,048,576 bytes (or aproximadamente 1,000,000 bytes). Página 16 Note que la B mayúscula indica bytes y la b minúscula indica bits.
Sistemas de numeración no posicionales 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. Página 17
binarios Existen diferentes códigos binarios: Binario natural BCD Exceso tres Gray Johnson Biquinario 2 entre 5 Hamming Página 18
Código BCD (Binary Coded Decimal) Representa los dígitos decimales por secuencias de bits en el sistema binario. BCD es la abreviatura de Binary Coded Decimal es decir, decimal codificado en binario. Cada secuencia de 4 bits es una palabra del código. Cada dígito decimal se le asocia una secuencia de 4 bits. Página 19 Código 7, puede interpretarse según: 0 2 3 +1 2 2 +1 2 1 +1 2 0 = 0 8 + 1 4 + 1 2 + 1 1 = 7
BCD y Decimal Ejemplo 1. Representar en BCD el valor 12 decimal. 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? Página 20
Código Hexadecimal 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 16 3 +0 16 2 +B 16 1 +1 16 0 = 15 16 3 +0 16 2 +11 16 1 +1 16 0 = 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 Los códigos Grey tienen un mínimo de cambios entre su antecesor y el sucesor. 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 Página 22
Código Gray Página 23 Binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Grey 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000
Binario Codificado en Decimal Se necesitan de cuatro bits para representar cada dígito decimal. 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). Página 24
Numéricos Ejemplo 2 Transmisión de símbolos BCD 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: Página 25 Transmisión serie de un símbolo BCD.
Numéricos 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. Página 26 Transmisión paralela símbolo BCD.
Numéricos Paridad 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. Página 27
Numéricos Decimal Paridad Impar Paridad Par 0 1000 0000 1 0001 1001 2 0010 1010 3 1011 0011 4 0100 1100 5 1101 0101 6 1110 0110 7 0111 1111 Página 28
Numéricos Se envían 4 bits en paralelo más uno de paridad. Tx Rx Decimal Paridad Impar Paridad Par 0 1000 0000 1 0001 1001 2 0010 1010 3 1011 0011 4 0100 1100 5 1101 0101 6 1110 0110 7 0111 1111 Página 29 Cómo se podría construir un generador y detector de paridad?
Solución: Numéricos Página 30 P: Bit de paridad DP: Bit detector de paridad
Código biquinario 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 Página 31
Código 2 entre 5 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. 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. Página 32
Alfanumérico CODIGO ALFANUMÉRICO 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: 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 Página 33
Alfanuméricos Alfanuméricos 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. Página 34
Alfanuméricos Son los códigos binarios utilizados para representar el alfabeto y los caracteres numéricos. Los dos más comunes son: 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. Página 35
Código ASCII 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 Convertir el número 192 decimal a su equivalente binario Página 37 192/2 = 96 con un residuo de 0 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 Escriba todos los residuos, en forma reversa, y obtiene el número binario 11000000.
Página 38 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. 192-128 = 64 128 utilizado 1 64-64 = 0 64 utilizado 1 32 utilizado 0 16 utilizado 0 8 utilizado 0 4 utilizado 0 2 utilizado 0 1 utilizado 0 Escriba los unos y los ceros de arriba hacia abajo, y se obtiene el número 11000000.
Página 39 Conversión de Binario a Decimal 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) 2 utilizado 0 1-1 = 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 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. 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 128 64 32 16 8 4 2 1 1 0 1 1 0 1 0 1 128 + 32 + 16 + 4 + 1 = 181 Página 40
Conversión de hexadecimal a decimal Base 16 16^4 16^3 16^216^116^0 Decimal 65.536 4.096 256 16 1 1 2 A 298 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 (A = 10 en hex) 298
Página 42 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 10 en binario es 1 0 1 0 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