Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Hay varios algoritmos para generar una secuencia de código Gray (y varios
códigos posibles resultantes, en función del orden que se desee seguir), pero el
más usado consiste en cambiar el bit menos significativo que genera un nuevo
código. Este es un código gray de cuatro bits generado con dicho algoritmo:
Dígito decimal Código Gray Dígito decimal Código Gray
0 0000 8 1100
1 0001 9 1101
2 0011 10 1111
3 0010 11 1110
4 0110 12 1010
5 0111 13 1011
6 0101 14 1001
7 0100 15 1000
Estos conceptos pueden ser difíciles en un principio de entender pero una vez
abordado el diseño de circuitos combinacionales todo se ve con mayor claridad.
BINARIO A GRAY
Para pasar un número binario al código binario Gray, hay una regla fácil de
implementar en un lenguaje de programación:
Un número en binario siempre empieza en 1 --Los ceros a la izquierda no
cuentan--; Pues en Gray también. Ej: 1000011110000 en binario se escribe
1xxxxXXXXxxxx.
Ahora nos fijamos en el segundo dígito. Si es igual al dígito anterior se pone un
0 (no cambia); Si es diferente --como es el caso, pues el dígito anterior era un
1 y el que observamos un 0-- se pondrá un 1 (cambia). Ej: El número del
ejemplo anterior será: 11xxxXXXXxxxx.
En los casos sucesivos se repite el paso anterior, observando en el número
binario 'natural' el dígito anterior al que se evalúa. Ej: El número del ejemplo
anterior, pasado a código Gray será: 1100010001000.
Otros ejemplos:
1010 - 1111
111000 - 100100
011001 - 010101
110101010001 - 101111111001
Otra técnica sencilla para pasar de binario a Gray sin usar un lenguaje de
programación es esta:
aplicar un XOR (disyunción exclusiva, también se puede sumar cada bit
individualmente descartando cualquier acarreo) del número a sí mismo pero
con un acarreo a la derecha
eliminar el bit del extremo derecho
Ej: Pasar diez (1010) de binario a gray será 1111
1010
1010
-----
1111
OTROS EJEMPLOS
111000
111000
------
100100
110101010001
110101010001
------------
101111111001
GRAY A BINARI
Hacer el cambio contrario es simplemente invertir lo que hace el anterior, de forma
que si se encuentra un cero (siempre que no sea al principio) se debe poner la
cifra anterior; En cambio si pone un 1 es porque la cifra ha cambiado así que si
había un 0 ahora se pone un 1 y viceversa.
MOTIVACIÓN
Las computadoras antiguas indicaban posiciones abriendo y cerrando
interruptores. Utilizando tres interruptores como entradas usando Base 2, estas
dos posiciones estarían una después de la otra:
...
011
100
...
1010
101
----
1111
Nótese que desde el 7 podría pasar a 0 con un solo cambio de switch (el más
significativo pasa a cero). Esta es la propiedad llamada "cíclica" del código de
Gray.
CONVERSIONES
Secuencia Binario Gray Secuencia Binario Gray
1010
101
----
1111
0111
011
------
0100
Gray a Base 2
Tenemos un vector conteniendo los dígitos en gray y otro vector destinado a
contener los dígitos en Base 2
El primer bit empezando por la izquierda del digito del código gray se respetará
para la conversión a base 2, el resultado es obtener el mismo bit para el dígito
binario que el que tiene en gray, para conseguir el segundo bit del binario
sumaremos el primer bit del dígito del sistema binario por el segundo del sistema
gray, sin tener en cuenta los acarreos y respetando la tabla de suma para binarios:
0+0=0 ; 0+1=1 ; 1+0=1 ; 1+1=10
El segundo de base dos es igual a la suma del primero de base 2 con el segundo
de gray en este caso es (1)+(0)= (1)
El tercero de base dos es igual a la suma del segundo de base2 con el tercero de
gray en este caso es (1)+(0)= (1)
El cuarto de base dos es igual a la suma del tercero de base dos con el cuarto de
gray es este caso es (1)+(1)=10 tomamos el cero del 10 descartando el acarreo
por lo que tenemos (0)
FUNDAMENTOS
En BCD cada cifra que representa un dígito decimal (0, 1,...8 y 9) se representa
con su equivalente binario en cuatro bits (nibble o cuarteto) (esto es así porque es
el número de bits necesario para representar el nueve, el número más alto que se
puede representar en BCD).
CARACTERÍSTICAS
Ponderación
La mayoría de los sistemas de numeración actuales son ponderados, es decir,
cada posición de una secuencia de dígitos tiene asociado un peso. El sistema
binario es, de hecho, un sistema de numeración posicional ponderado. Sin
embargo, algunos códigos binarios, como el código Gray, no son ponderados, es
decir, no tienen un peso asociado a cada posición. Otros, como el mismo código
binario natural o el BCD natural sí lo son.
Distancia
Es una característica sólo aplicable a las combinaciones binarias. La distancia
entre dos combinaciones es el número de bits que cambian de una a otra. Por
ejemplo, si se tienen las combinaciones de cuatro bits 0010 y 0111,
correspondientes al 2 y al 7 en binario natural, se dirá que la distancia entre ellas
es igual a dos ya que de una a otra cambian dos bits.
Continuidad
Es una característica de los códigos binarios que cumplen que todas las posibles
combinaciones del código son adyacentes, es decir, que de cualquier combinación
del código a la siguiente cambia un sólo bit. En este caso se dice que el código es
continuo. Cuando la última combinación del código es, a su vez, adyacente a la
primera, se trata de un código cíclico.
Autocomplementariedad
El código binario es autocomplementario cuando el complemento a nueve del
equivalente decimal de cualquier combinación del código puede hallarse
invirtiendo los valores de cada uno de los bits (operación lógica unaria de
negación) y el resultado sigue siendo una combinación válida en ese código. Esta
característica se observa en algunos códigos BCD, como el código Aiken o el
código BCD exceso 3. Los códigos autocomplementarios facilitan las operaciones
aritméticas.
Aplicación
Electrónica
El BCD es muy común en sistemas electrónicos donde se debe mostrar un valor
numérico, especialmente en los sistemas digitales no programados (sin
microprocesador o microcontrolador).
Representación
Cada dígito decimal tiene una representación binaria codificada con 4 bits:
Decimal: 0 1 2 3 4 5 6 7 8 9
BCD: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
Los números decimales, se codifican en BCD con los de bits que representan
sus dígitos.
Tabla del Código BCD
Ejemplo
La codificación en BCD del número decimal 59237 es:
Decimal: 5 9 2 3 7
BCD: 0101 1001 0010 0011 0111