PROMOCION XIV

Código Gray

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.”
 
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
Códigos
• Códigos 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.
• 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.

 Códigos

    Cuando se representan númerosletras o palabras por un grupo especial de símbolos, se llama codificación y al grupo de símbolos se le denomina un código. Probablemente uno de los códigos más familiares es el código Morse, en el cual las letras del alfabeto se representan por puntos y rayas.

    Ya se ha visto que cualquier número decimal puede representarse por un número binario equivalente. Puede pensarse que el grupo deceros y unos en el número binario es un código que representa al decimal. Cuando se representa un número decimal por su número binarioequivalente, se llama codificación binaria directa.

    Los sistemas binarios usan todos alguna forma de números binarios para sus operaciones internas pero el mundo externo es de naturalezadecimal. Esto significa que se deben ejecutar conversiones frecuentes entre los sistemas decimal y binario. Hemos visto que lasconversiones entre decimal y binario pueden llegar a ser largas y complicadas para números grandes. Por esta razón, algunas veces se usan otros medios para codificar los números decimales que combinan algunas características de los sistemas decimal y binario.


1.4.1    Código decimal codificado en binario (BCDBinary Coded Decimalpor sus siglas en inglés)

    Si cada dígito de un número decimal se representa por su equivalente binario, esto produce un código llamado decimal codificado enbinario (abreviado BCD  por sus siglas en inglés). Puesto que un dígito decimal puede ser tan grande como 9, se requieren 4 bits para codificar cada dígito (el código binario para 9 es 1001).

    Para ilustrar el código BCD, tomemos un número decimal como 874. Cada dígito se cambia a su equivalente binario como sigue:

8 7 4
^ ^ ^
1000 0111 0100

Como otro ejemplo, cambiemos 94.3 a su representación en código BCD:

9 4 . 3
^ ^   ^
1001 0100 . 0011

    Una vez más, cada dígito decimal se cambia a su equivalente binario directo. Note que siempre se usan 4 bits para cada dígito.

    El código  BCD, entonces representa cada dígito del número decimal por un número binario de 4 bits. Claramente, sólo los númerosbinarios de 4 bits desde 0000 hasta 1001 se usan. El código BCD no usa los números 10101011110011011110 y 1111. En otras palabras, sólo 10 de los 16 grupos codificados posibles de 4 bits se usan. Si cualesquiera de estos números prohibidos de 4 bits alguna vez ocurren en una máquina que usa el código BCD, generalmente indica que ha ocurrido un error.


EJEMPLO 3.     Convertir el número BCD 0110100000111001 a su equivalente decimal:

SOLUCIÓN

0110 1000 0011 1001
^ ^ ^ ^
6 8 3 9

EJEMPLO 4   Convierta el número BCD 011111000001 a su equivalente decimal:

0111 1100 0001
7 ^ 1
grupo de código prohibido indica error en el número BCD

    Al hacer una comparación entre BCD y binario común, es importante darse cuenta que un número BCD no es lo mismo que un númerobinario común. Un código binario común toma el número decimal completo y lo representa en binario, mientras que el código BCD convierte cada dígito decimal a binario en forma individual. Para ilustrar, tome el número 137 y compare las representaciones binaria común y codificada BCD:

13710 = 10001001 binario
13710 = 0001 0011 0111 BCD

    El código BCD requiere 12 bits mientras que el código binario común requiere sólo bits para representar 137. Es siempre verdadero que el código BCD para un número decimal dado requiere más bits que el código binario común. Esto es porque BCD no usa todos los grupos posibles de 4 bits, como se señaló antes y es por consiguiente algo ineficiente.

    La principal ventaja del código BCD es la facilidad relativa para convertir a y desde decimal. Sólo se requiere recordar los grupos codificados de 4 bits para los dígitos decimales del 0 al 9. Esta facilidad de conversión es especialmente importante desde el punto de vista de circuitos, porque en un sistema decimal son los circuitos lógicos los que ejecutan las conversiones a y desde decimal.

    BCD se usa en máquinas digitales siempre y cuando se aplique información digital, ya sea como entradas o mostradas como salidas. Losvoltímetros digitales, contadores de frecuencia y relojes digitales usan todos BCD, porque despliegan la información de salida en decimal. Las calculadoras electrónicas usan BCD porque los números de entrada vienen en decimal vía el teclado y los números de salida son mostrados en decimal.

    BCD no es a menudo usado en computadoras digitales modernas de alta velocidad por dos buenas razones. Primero, como ya fue señalado, el código BCD para un número decimal dado requiere más bits que el código binario directo y es por consiguiente menos eficiente. Esto es importante en computadoras digitales porque el número de lugares en memoria donde estos bits pueden ser almacenados es limitado. Segundo, los procesos aritméticos para números representados en código BCD son más complicados que en binario ordinario y requieren así de circuitería más compleja. La circuitería más compleja contribuye a una disminución en la velocidad a la cual tienen lugar las operaciones aritméticas. Las calculadoras que usan BCD son, por consiguiente, considerablemente más lentas en su operación que las computadoras.


1.4.2    Código exceso-3

    El código exceso-3 está relacionado con el código BCD y usado a veces en lugar de él porque posee ventajas en ciertas operaciones aritméticas. El código exceso-3 para un número decimal se ejecuta de la misma manera que en BCD excepto que se añade 3 a cada dígitodecimal antes de codificarlo en binario. Por ejemplo, para codificar el número decimal 4 en el código exceso-3, debemos añadir 3 para obtener 7. Luego el 7 se codifica en código binario equivalente de 4 bits para obtener 0111.

    Como otro ejemplo, convirtamos 46 a su representación en código exceso-3:

  4
+
3
  6
+
3
añada 3 a cada dígito
  7
0111
  9
1001
convierta a código binario de 4 bits

    La siguiente tabla muestra las listas para las representaciones BCD y exceso-3 para los dígitos decimales. Note que ambos códigos usan10 de los 16 posibles grupos codificados de 4 bits. El código exceso-3, sin embargo, no usa los mismos grupos codificados. Para exceso-3, los grupos codificados no válidos son 00000001001011011110 y 1111.

Decimal BCD Exceso-3
0
1
2
3
4
5
5
7
8
9
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100

1.4.3    Código Gray

    El código Gray pertenece a una clase de códigos llamados códigos de cambio mínimo, en los cuales sólo cambia un bit en el grupo codificado cuando se va de un paso al siguiente. El código Gray es un código no ponderado, significando que las posiciones de los bits en los grupos codificados no tienen un peso específico asignado. Debido a esto, el código Gray no es apropiado para operaciones aritméticas, pero encuentra aplicaciones en dispositivos de entrada/salida y en algunos tipos de convertidores analógicos a digital.

    La siguiente tabla muestra la representación en Código Gray para los números decimales 0 al 15, junto con el código binario directo. Si examinamos los grupos codificados Gray para cada número decimal, puede verse que al ir desde cualquier número decimal al siguiente, sólo un bit del código Gray cambia. Por ejemplo, al ir desde 3 a 4, el código Gray cambia de 0010 a 0110, con solo el segundo bit desde la izquierda experimentando cambio. Yendo de 14 a 15 los bits del código Gray cambian de 1001 a 1000, con una sola variación en el último bit. Esta es la principal característica del código Gray. Compare esto con el código binario en el cual de uno a todos los bits cambian de un número al siguiente.

Decimal Código binario Código Gray
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

    El código Gray se usa a menudo donde otros códigos tales como el binario, pudieran producir resultados erróneos o ambiguos durante esas transiciones en las cuales más de un bit del código está cambiando. Usando el código binario, por ejemplo, y yendo de 0111 a 1000requiere que todos los 4 bits cambien simultáneamente. Dependiendo del dispositivo o circuito que está generando los bits, puede haber una diferencia significativa en los tiempos de transición de los diferentes bits. Si esto es así, las transiciones de 0111 a 1000 pudiera producir uno o más estados intermedios. Por ejemplo, si el bit más significativo cambia más rápido que el resto, ocurrirán las siguientes transiciones:

0111   decimal
1111   código erróneo
1000   decimal 8

    La ocurrencia de 1111 es sólo momentánea pero pudiera concebiblemente producir una operación errónea de los elementos que están siendo controlados por los bits. Obviamente, usando el código Gray se elimina este problema, puesto que sólo ocurre el cambio de un bit portransición y no puede ocurrir una carrera.

    Cualquier número binario puede convertirse a su representación en código Gray como sigue:

  1. El primer bit del código Gray es el mismo como el primer bit del número binario.
  2. El segundo bit del código Gray es igual a la operación O EXCLUSIVA del primer y segundo bits del número binario; esto es, será 1 si estos bits del código binario son diferentes y 0 si son los mismos.

  3. El tercer bit del código Gray es igual a la O EXCLUSIVA del segundo y tercer bits del número binario y así sucesivamente.

    Para ilustrar esto, convirtamos el binario 10110 al código Gray:

1   0   1   1   0 código binario
^   ^   ^   ^   ^  
1   1   1   0   1 código Gray

    El primer bit del código Gray es el mismo como el primer bit del código binario. El primero y segundo bits del código binario sondiferentes, dando un 1 para el segundo bit Gray. El segundo y tercer bits del número binario son diferentes, dando un 1 para el tercer bitGray. El tercero y cuarto bits del número binario son lo mismo, así que el cuarto bit Gray es 0. Finalmente, el cuarto y quinto bits binariosson diferentes, dando un quinto bit Gray de 1.


    Otro ejemplo es como sigue:

1   0   0   1   1   0   0   1 binario
^   ^   ^   ^   ^   ^   ^   ^  
1   1   0   1   0   1   0   1 Gray

    Para convertir de Gray a binario se requiere el procedimiento opuesto dado previamente:

  1. El primer bit binario es el mismo que el primer bit Gray.
  2. Si el segundo bit Gray es 0, el segundo bit binario es el mismo como el primero; si el segundo bit Gray es 1, el segundo bit binarioes el inverso del primer bit binario.

  3. El paso 2 se repite para el bit sucesivo.

    Para ilustrar esto, convirtamos 1101 de Gray a binario:

1   1   0   1 Gray
^   ^   ^   ^  
1   0   0   1 binario

    El primer bit Gray es 1, así que el primer bit binario se escribe como 1. El segundo bit Gray es un 1, así que el segundo bit binario se hace un 0 (inverso del primer bit binario). El tercer bit Gray es un 0. así que el tercer bit binario se hace un 0 (lo mismo como el segundobit binario). El cuarto bit Gray es 1, haciendo el cuarto bit un 1 (inverso del tercer bit binario).

    Este proceso puede ser visto de otra manera: Cada bit binario (exceptuando el primero) puede obtenerse tomando la O EXCLUSIVA del bit correspondiente del código Gray y el bit binario previo.

    Finalmente, en las siguientes tablas, se presentan los códigos Gray y los ponderados exceso-38 4 -2 -1 y Biquinario, referidos al códigoBCD.

CÓDIGO
Decimal BCD Gray Exceso-3
8 4 2 1 8 4 2 1 8 4 2 1
0
1
2
3
4
5
6
7
8
9
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
10
:
15
        x
:
x
x
:
x
x
:
x
x
:
x
x
:
x
x
:
x
x
:
x
x
:
x
 
                       

 

Conversión de un número en código GRAY a código binario

1. El primer dígito del código Gray será el mismo que el del binario

2. Si el segundo dígito del código Gray es "0", el segundo dígito binario es igual al primer digito binario, si este dígito es "1" el segundo dígito binario es el inverso del primer dígitobinario.

3. Si el tercer dígito del código Gray es "0", el tercer dígito binario es igual al segundo dígito binario, si este dígito es "1", el tercer dígito binario es el inverso del segundo dígitobinario..... y así hasta terminar.

 

Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis