Está en la página 1de 105

Código BCD (Binary-Coded Decimal (BCD) o Decimal codificado).

Binario es un
estándar para representar números decimales en el sistema binario, en donde cada dígito
decimal es codificado con una secuencia de 4 bits.

Con esta codificación especial de los dígitos decimales en el sistema binario, se pueden
realizar operaciones aritméticas como suma, resta, multiplicación y división de números
en representación decimal, sin perder en los cálculos la precisión ni tener las
inexactitudes en que normalmente se incurre con las conversiones de decimal a binario
puro y de binario puro a decimal.

La conversión de los números decimales a BCD y viceversa es muy sencilla, pero los
cálculos en BCD se llevan más tiempo y son algo más complicados que con números
binarios puros.

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.

Además, con el concepto de distancia se puede definir la distancia mínima de un código.


Ésta no es más que la distancia menor que haya entre dos de las combinaciones de ese
código.

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).

Utilizando el código BCD, se simplifica la manipulación de los datos numéricos que


deben ser mostrados por ejemplo en un visualizador de siete segmentos. Esto lleva a su
vez una simplificación en el diseño físico del circuito (hardware).

Si la cantidad numérica fuera almacenada y manipulada en binario natural, el circuito


sería mucho más complejo que si se utiliza el BCD. Hay un programa que se llama
b1411 que sirve para dividir al sistema binario en dos combinaciones. Una por ejemplo
es la de sistemas digitales.

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.
Ejemplo
 La codificación en BCD del número decimal 59237 es:

Decimal: 5 9 2 3 7
BCD: 0101 1001 0010 0011 0111

La representación anterior (en BCD) es diferente de la representación del mismo


número decimal en binario puro:

11100111 01100101
 Conversión directa típica entre un número en decimal y uno binario. 8510 =
10101012. La representación el mismo número decimal en código BCD se
muestra a la derecha.

 Conversión directa típica entre un número en decimal y uno binario. 56810 =


10001110002. La representación el mismo número decimal en código BCD se
muestra a la derecha.

El Código Binario natural es el que todos nosotros conocemos comúnmente como


código binario, es un sistema de numeración posicional ponderado en base 2, esto
quiere decir que solamente se emplean dos símbolos y sirve para representar cantidades
numéricas. A cada dígito de una combinación se le llama bit. Al ser la base igual a 2, la
representación decimal de un número binario se halla por el Teorema Fundamental de la
Numeración como sumas de potencias de 2. Además, se cumple que con una cadena de
n bits se pueden representar [2^n] combinaciones.

CODIGO BCD NATURAL.

Al hacerse necesario el mostrar los datos en formato decimal, se necesita tantos


elementos como dígitos tenga el dato, ejemplo las calculadoras, donde la visualización
de los datos se realiza mediante visualizadores display de siete segmentos.

En estas aplicaciones aquellos códigos que hacen que se representen cada uno de estos
dígitos decimales, se denominan códigos BCD, significando decimal codificado en
binario (Binary Coded Decimal).

Entre estos códigos, el de más interés práctico, encontramos e l BCD natural, que basa
en representar cada dígito decimal a su correspondiente binario natural. Cada dígito
corresponde a un grupo de 4 bits.
Se requiere que los datos de entrada decimales, sean convertidos internamente a BCD.
Para obtener los datos se requiere una conversión inversa. (Pasar de BCD a decimal)

Para realizar esto se requieren unos circuitos integrados (CI) codificadores y


decodificadores que junto con los display, permiten operar en el sistema decimal,
aunque el aparato lo haga internamente en binario.

El código BCD es un código ponderado; a cada bit le corresponde un valor (peso) de


acuerdo con la posición que ocupa, igual que el binario natural. Los pesos son: 8-4-2-1.

La representación del 1 al 9 corresponde con el binario natural, pero a partir del número
decimal 10, se precisan dos grupos de 4 bits por dígito.

Ejemplo: el número 13.


0001 0011
13

 Para codificar un número decimal de N dígitos se requieren N grupos de 4 bits.

Ejemplo: 2001

2 = 0010 0010 0000 0000 0001


0 = 0000 2 0 0 1
0 = 0000
1 = 0001
Tabla de Códigos BCD

Decimal Código BCD

0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 0001 0000
11 0001 0001
12 0001 0010
13 0001 0011
14 0001 0100
15 0001 0101

Los números decimales se convierten a binario BCD mediante circuitos codificadores y


mediante decodificadores y unidades de visualización (displays) se hace la
representación decimal de códigos BCD.
El código BCD natural es el normalmente utilizado cuando tiene que haber
representación numérica; es el ejemplo de calculadoras, instrumental, sistemas de
control industrial etc...

El código BCD Aiken es un código similar al código BCD natural pero con los “pesos”
o “valores” distribuidos de una manera diferente. En el código BCD natural, los pesos
son: 8 – 4 – 2 – 1, en el código Aiken la distribución es: 2 – 4 – 2 – 1.

La razón de esta codificación es la de conseguir simetría entre ciertos números. Ver la


simetría en el código Aiken correspondiente a los decimales: 4 y 5, 3 y 6, 2 y 7, 1 y 8, 0
y 9.

Analizar la tabla que se muestra en la figura anterior. Cada cifra es el complemento a 9


de la cifra simétrica en todos sus dígitos.(los “1” se vuelven “0” y los “0” se vuelven
“1”). Ejemplo: 3 (0011) y 6 (1100).Tomar en cuenta los nuevos “pesos” en este código.
El código Aiken es muy útil para realizar operaciones de resta y división.
El código binario Exceso-3, o 3-exceso1 (normalmente abreviado como XS-3 o X3) o
código Stibitz (por George Stibitz) es un código decimal codificado en binario auto-
complementario y un sistema de numeración. Es una representación parcial. Exceso-3
fue utilizado en varias computadoras antiguas al igual que en cajas registradoras y
calculadoras electrónicas portátiles en la década del '70, además de muchas otras cosas.

Representación
Los códigos parciales son una forma de representar valores con un número balanceado
de positivos y negativos utilizando un número pre-especificado”N” como valor de
parcialidad. Los códigos parciales (y los códigos Gray) son códigos no ponderados. En
XS-3, los números son representados como dígitos decimales, y cada dígito es
representado por cuatro bits como el valor del dígito más 3 (la cantidad "de exceso"):

 El número binario más pequeño representa al valor más pequeño


 El número binario más grande representa al valor más grande

Para codificar un número como el 127, uno simplemente codificada cada uno de los dígitos
decimales de arriba, dando
Deriva su nombre de exceso 3 debido a que cada grupo de 4 bits equivale al número
BCD 8421 más 3.

El código de exceso 3 para un número decimal se efectúa de la misma forma que el


BCD, excepto que se suma el número 3 a cada dígito decimal antes de codificarlo en
binario. Por ejemplo, para codificar el número decimal 4 en código de exceso 3 primero
debemos sumar 3 y obtenemos 7. Luego el 7 se codifica en su equivalente binario de 4
bits, 0111.

Para poner otro ejemplo convirtamos el número 48 en representación en código de


exceso 3:

La tabla siguiente contiene las representaciones en código BCD y de exceso 3 para los
dígitos decimales. Nótese que ambos códigos solo emplean 10 de los 16 posibles grupos
de códigos de 4 bits. Sin embargo, el código de exceso 3 no usa los mismos grupos de
código. Para el código de exceso 3, los grupos de código no válidos son: 0000, 0001,
0010, 1101, 1110 y 1111.

Este código no es ponderado, es decir, los bits no tienen un peso asociado.


BCD Exceso a 3: 576 = 1000 1010 1001
Ocurre cuando de uno a otro código cambia solo un bit a la vez.

Esta propiedad existe cuando entre un elemento del código y su consecutivo, sólo
cambia 1 bit. Se basa en la forma en que está construido el código. Ayudan a eliminar el
efecto transicional o de la transición

Códigos de distancia unitaria No Ponderados


Un código de distancia unitaria no ponderado es aquel cuyas palabras de código
adyacentes difieren en un solo bit de posición.

Códigos Reflejados No Ponderados


Consiste en pares de palabras del código, en los cuales los miembros de los pares:

a) Ocupan posiciones correspondientes arriba y abajo de la línea de la línea divisora de


la tabla y difieren en un solo bit de posición.

Códigos Gray Es un código de distancia unitaria reflejado.


El código binario reflejado o código Gray, nombrado así en honor del investigador
Frank Gray, es un sistema de numeración binario en el que dos números consecutivos
difieren solamente en uno de sus dígitos.

El código Gray fue diseñado originalmente para prevenir señales ilegales (señales falsas
o viciadas en la representación) de los switches electromecánicos, y actualmente es
usado para facilitar la corrección de errores en los sistemas de comunicaciones, tales
como algunos sistemas de televisión por cable y la televisión digital terrestre.

El investigador de Laboratorios Bell, Frank Gray inventó el término código binario


reflejado cuando lo patentó en 1947, remarcando que éste "no tenía nombre reconocido
aún". Él creó el nombre basándose en el hecho de que el código "puede ser construido a
partir del código binario convencional por una suerte de 'proceso reflejante'".

El código fue llamado posteriormente "Gray" por otros investigadores. Dos patentes en
1953 dieron como nombre alternativo "código de Gray" para el "código binario
reflejado"; uno de ellas también se refiere al código como "mínimum error Code"
(código de error mínimo) y como "cyclic permutation Code" (código de permutación
cíclica).

Conversiones para convertir el código binario a código Gray podemos seguir el


siguiente procedimiento:

1. El bit más significativo en el código Gray es el mismo que el que corresponde al más
significativo del número binario.

2. Comenzando de izquierda a derecha, se debe sumar cada par adyacente de los bits en
código binario para obtener el siguiente bit en código Gray. No tenemos en cuenta los
acarreos.

Para convertir de código Gray a binario, se utiliza un método similar al descrito


anteriormente. Igual podemos seguir el siguiente procedimiento.
1. El bit más significativo en el código binario es el mismo que el que corresponde al bit
del código Gray.

2. A cada bit del código binario generado se le suma el bit en código Gray de la
siguiente posición adyacente. No tenemos en cuenta los acarreos.

Historia y Aplicaciones Prácticas


El código binario reflejado fue aplicado para acertijos matemáticos antes de ser usado
para la ingeniería. El ingeniero francés Émile Baudot le dio una aplicación al código de
Gray en 1878 en telegrafía, trabajo por el cual fue condecorado con la Legión de Honor.

Hasta la primera mitad de los años 1940 los circuitos lógicos digitales se realizaban con
válvulas de vacío y dispositivos electromecánicos. Los contadores necesitaban potencias
muy elevadas a la entrada y generaban picos de ruido cuando varios bits cambiaban
simultáneamente. Tomando esto en cuenta, Frank Gray inventó un método para
convertir señales analógicas a grupos de código binario reflejado utilizando un aparato
diseñado con válvulas de vacío, con lo cual garantizó que en cualquier transición
variaría tan sólo un bit.

En la actualidad, el código Gray se emplea como parte del algoritmo de diseño de los
mapas de Karnaugh, los cuales son, a su vez, utilizados como "herramienta de diseño"
en la implementación de circuitos combinacionales y circuitos secuenciales. La vigencia
del código Gray se debe a que un diseño digital eficiente requerirá transiciones más
simples y rápidas entre estados lógicos (0 ó 1), por ello es que se persisten en su uso, a
pesar de que los problemas de ruido y potencia se hayan reducido con la tecnología de
estado sólido de los circuitos integrados.

Utilizando el código Gray es posible también resolver el problema de las Torres de


Hanói. Se puede incluso formar un ciclo hamiltoniano o un hipercubo, en el que cada bit
se puede ver como una dimensión.

Debido a las propiedades de distancia de Hamming que posee el código Gray, es usado
en ocasiones en algoritmos genéticos.

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:

El problema con el código binario en base 2 es que con interruptores mecánicos, es


realmente difícil que todos los interruptores cambien al mismo tiempo. En la transición
de los dos estados mostrados arriba, tres interruptores cambian de sitio. En el lapso en el
que los interruptores están cambiando, se pueden presentar salidas de información
espurias. Si las salidas mencionadas alimentan un circuito secuencial, probablemente el
sistema presentará un error en entrada de datos.
El código gray resuelve este problema cambiando solamente un dígito a la vez, así que
no existe este problema:

tienes que tener en cuenta que para convertir de binarios a Gray los valores que deben
ser sumados en base 2 toman los siguientes valores 1+1=0, 0+0=0 , 1+0=1 y 0+1=1 esta
operación de forma vertical como se muestra en el siguiente ejemplo:

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

Base 2 a Gray
Para convertir un número binario (en Base 2) a código Gray, simplemente se le aplica
una operación XOR con el mismo número desplazado un bit a la derecha, sin tener en
cuenta el acarreo.

Ejemplo: 1010 (Base 2) a gray


Otros ejemplos 0111(Base 2) a gray:

Debido a los numerosos problemas a la hora de realizar la transmisión, es necesario


utilizar técnicas que permitan detectar y corregir los errores que se hayan producido.
Estas técnicas se basan siempre en la idea de añadir cierta información redundante a la
información que desee enviarse. A partir de ella el receptor puede determinar, de forma
bastante fiable, si los bits recibidos corresponden realmente a los enviados. Algunos
métodos son:
Código de Paridad
 Añade a cada dato un bit de paridad
 Permite detectar un error en un bit
 Paridad par, paridad impar

Códigos Correctores
 Permiten detectar errores en más de un bit
 El código debe ser capaz de indicar los bits erróneos
Ejemplos:
Códigos de paridad múltiple
Código Hamming
Códigos polinomiales (CRC)

Código Hamming
Distancia Hamming entre dos vectores: es el número de bits en el que toman valores
diferentes.

Ej. Distancia Hamming 2 c1=0101 y c2 = 1100

 Distancia de un código es la mínima distancia Hamming entre todas las posibles


combinaciones distintas del código.
 Teorema: Si la distancia de un código es d, entonces podemos detectar errores
que afecten a d-1 bit.
 Teorema: Si la distancia de un código es d, entonces es posible detectar y
corregir los errores que afecten a t bits según la siguiente expresión: d = 2·t+1

Ejemplos: Números naturales 0….15 codificados en binario con 4 bit.

 Distancia del código: 1


 No es posible detectar ni corregir ningún error en los bit.

Ejemplos: Números naturales 0…..15 codificados en binario con 4 bit con bit de
paridad par.
 Distancia del código: 2
 Es posible detectar errores en un bit. No es posible corregir ningún error.

Ejemplos: Código Hamming de los 15 primeros números naturales

 Distancia del código: 3


 Es posible detectar errores en dos bit. Es posible corregir errores en un bit.

Código Hamming
El código de Hamming es
un código detector y
corrector de errores que
lleva el nombre de su
inventor, Richard
Hamming. En los datos
codificados en Hamming
se pueden detectar errores
en un bit y corregirlos, sin
embargo no se distingue entre errores de dos bits y de un bit (para lo que se usa
Hamming extendido). Esto representa una mejora respecto a los códigos con bit de
paridad, que pueden detectar errores en sólo un bit, pero no pueden corregirlo.

Hamming Extendido
También se utiliza el “Hamming Extendido” para asegurar una mejor detección.
Simplemente consiste en añadir una fila adicional completa, y un nuevo bit de paridad
en la primera posición.
Código BCD (Binary-Coded Decimal (BCD) o Decimal codificado). Binario es un
estándar para representar números decimales en el sistema binario, en donde cada dígito
decimal es codificado con una secuencia de 4 bits.

Con esta codificación especial de los dígitos decimales en el sistema binario, se pueden
realizar operaciones aritméticas como suma, resta, multiplicación y división de números
en representación decimal, sin perder en los cálculos la precisión ni tener las
inexactitudes en que normalmente se incurre con las conversiones de decimal a binario
puro y de binario puro a decimal.

La conversión de los números decimales a BCD y viceversa es muy sencilla, pero los
cálculos en BCD se llevan más tiempo y son algo más complicados que con números
binarios puros.

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.

Además, con el concepto de distancia se puede definir la distancia mínima de un código.


Ésta no es más que la distancia menor que haya entre dos de las combinaciones de ese
código.

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).

Utilizando el código BCD, se simplifica la manipulación de los datos numéricos que


deben ser mostrados por ejemplo en un visualizador de siete segmentos. Esto lleva a su
vez una simplificación en el diseño físico del circuito (hardware).

Si la cantidad numérica fuera almacenada y manipulada en binario natural, el circuito


sería mucho más complejo que si se utiliza el BCD. Hay un programa que se llama
b1411 que sirve para dividir al sistema binario en dos combinaciones. Una por ejemplo
es la de sistemas digitales.

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.
Ejemplo
 La codificación en BCD del número decimal 59237 es:

Decimal: 5 9 2 3 7
BCD: 0101 1001 0010 0011 0111

La representación anterior (en BCD) es diferente de la representación del mismo


número decimal en binario puro:

11100111 01100101
 Conversión directa típica entre un número en decimal y uno binario. 8510 =
10101012. La representación el mismo número decimal en código BCD se
muestra a la derecha.

 Conversión directa típica entre un número en decimal y uno binario. 56810 =


10001110002. La representación el mismo número decimal en código BCD se
muestra a la derecha.

El Código Binario natural es el que todos nosotros conocemos comúnmente como


código binario, es un sistema de numeración posicional ponderado en base 2, esto
quiere decir que solamente se emplean dos símbolos y sirve para representar cantidades
numéricas. A cada dígito de una combinación se le llama bit. Al ser la base igual a 2, la
representación decimal de un número binario se halla por el Teorema Fundamental de la
Numeración como sumas de potencias de 2. Además, se cumple que con una cadena de
n bits se pueden representar [2^n] combinaciones.

CODIGO BCD NATURAL.

Al hacerse necesario el mostrar los datos en formato decimal, se necesita tantos


elementos como dígitos tenga el dato, ejemplo las calculadoras, donde la visualización
de los datos se realiza mediante visualizadores display de siete segmentos.

En estas aplicaciones aquellos códigos que hacen que se representen cada uno de estos
dígitos decimales, se denominan códigos BCD, significando decimal codificado en
binario (Binary Coded Decimal).

Entre estos códigos, el de más interés práctico, encontramos e l BCD natural, que basa
en representar cada dígito decimal a su correspondiente binario natural. Cada dígito
corresponde a un grupo de 4 bits.
Se requiere que los datos de entrada decimales, sean convertidos internamente a BCD.
Para obtener los datos se requiere una conversión inversa. (Pasar de BCD a decimal)

Para realizar esto se requieren unos circuitos integrados (CI) codificadores y


decodificadores que junto con los display, permiten operar en el sistema decimal,
aunque el aparato lo haga internamente en binario.

El código BCD es un código ponderado; a cada bit le corresponde un valor (peso) de


acuerdo con la posición que ocupa, igual que el binario natural. Los pesos son: 8-4-2-1.

La representación del 1 al 9 corresponde con el binario natural, pero a partir del número
decimal 10, se precisan dos grupos de 4 bits por dígito.

Ejemplo: el número 13.


0001 0011
13

 Para codificar un número decimal de N dígitos se requieren N grupos de 4 bits.

Ejemplo: 2001

2 = 0010 0010 0000 0000 0001


0 = 0000 2 0 0 1
0 = 0000
1 = 0001
Tabla de Códigos BCD

Decimal Código BCD

0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 0001 0000
11 0001 0001
12 0001 0010
13 0001 0011
14 0001 0100
15 0001 0101

Los números decimales se convierten a binario BCD mediante circuitos codificadores y


mediante decodificadores y unidades de visualización (displays) se hace la
representación decimal de códigos BCD.
El código BCD natural es el normalmente utilizado cuando tiene que haber
representación numérica; es el ejemplo de calculadoras, instrumental, sistemas de
control industrial etc...

El código BCD Aiken es un código similar al código BCD natural pero con los “pesos”
o “valores” distribuidos de una manera diferente. En el código BCD natural, los pesos
son: 8 – 4 – 2 – 1, en el código Aiken la distribución es: 2 – 4 – 2 – 1.

La razón de esta codificación es la de conseguir simetría entre ciertos números. Ver la


simetría en el código Aiken correspondiente a los decimales: 4 y 5, 3 y 6, 2 y 7, 1 y 8, 0
y 9.

Analizar la tabla que se muestra en la figura anterior. Cada cifra es el complemento a 9


de la cifra simétrica en todos sus dígitos.(los “1” se vuelven “0” y los “0” se vuelven
“1”). Ejemplo: 3 (0011) y 6 (1100).Tomar en cuenta los nuevos “pesos” en este código.
El código Aiken es muy útil para realizar operaciones de resta y división.
El código binario Exceso-3, o 3-exceso1 (normalmente abreviado como XS-3 o X3) o
código Stibitz (por George Stibitz) es un código decimal codificado en binario auto-
complementario y un sistema de numeración. Es una representación parcial. Exceso-3
fue utilizado en varias computadoras antiguas al igual que en cajas registradoras y
calculadoras electrónicas portátiles en la década del '70, además de muchas otras cosas.

Representación
Los códigos parciales son una forma de representar valores con un número balanceado
de positivos y negativos utilizando un número pre-especificado”N” como valor de
parcialidad. Los códigos parciales (y los códigos Gray) son códigos no ponderados. En
XS-3, los números son representados como dígitos decimales, y cada dígito es
representado por cuatro bits como el valor del dígito más 3 (la cantidad "de exceso"):

 El número binario más pequeño representa al valor más pequeño


 El número binario más grande representa al valor más grande

Para codificar un número como el 127, uno simplemente codificada cada uno de los dígitos
decimales de arriba, dando
Deriva su nombre de exceso 3 debido a que cada grupo de 4 bits equivale al número
BCD 8421 más 3.

El código de exceso 3 para un número decimal se efectúa de la misma forma que el


BCD, excepto que se suma el número 3 a cada dígito decimal antes de codificarlo en
binario. Por ejemplo, para codificar el número decimal 4 en código de exceso 3 primero
debemos sumar 3 y obtenemos 7. Luego el 7 se codifica en su equivalente binario de 4
bits, 0111.

Para poner otro ejemplo convirtamos el número 48 en representación en código de


exceso 3:

La tabla siguiente contiene las representaciones en código BCD y de exceso 3 para los
dígitos decimales. Nótese que ambos códigos solo emplean 10 de los 16 posibles grupos
de códigos de 4 bits. Sin embargo, el código de exceso 3 no usa los mismos grupos de
código. Para el código de exceso 3, los grupos de código no válidos son: 0000, 0001,
0010, 1101, 1110 y 1111.

Este código no es ponderado, es decir, los bits no tienen un peso asociado.


BCD Exceso a 3: 576 = 1000 1010 1001
Ocurre cuando de uno a otro código cambia solo un bit a la vez.

Esta propiedad existe cuando entre un elemento del código y su consecutivo, sólo
cambia 1 bit. Se basa en la forma en que está construido el código. Ayudan a eliminar el
efecto transicional o de la transición

Códigos de distancia unitaria No Ponderados


Un código de distancia unitaria no ponderado es aquel cuyas palabras de código
adyacentes difieren en un solo bit de posición.

Códigos Reflejados No Ponderados


Consiste en pares de palabras del código, en los cuales los miembros de los pares:

a) Ocupan posiciones correspondientes arriba y abajo de la línea de la línea divisora de


la tabla y difieren en un solo bit de posición.

Códigos Gray Es un código de distancia unitaria reflejado.


El código binario reflejado o código Gray, nombrado así en honor del investigador
Frank Gray, es un sistema de numeración binario en el que dos números consecutivos
difieren solamente en uno de sus dígitos.

El código Gray fue diseñado originalmente para prevenir señales ilegales (señales falsas
o viciadas en la representación) de los switches electromecánicos, y actualmente es
usado para facilitar la corrección de errores en los sistemas de comunicaciones, tales
como algunos sistemas de televisión por cable y la televisión digital terrestre.

El investigador de Laboratorios Bell, Frank Gray inventó el término código binario


reflejado cuando lo patentó en 1947, remarcando que éste "no tenía nombre reconocido
aún". Él creó el nombre basándose en el hecho de que el código "puede ser construido a
partir del código binario convencional por una suerte de 'proceso reflejante'".

El código fue llamado posteriormente "Gray" por otros investigadores. Dos patentes en
1953 dieron como nombre alternativo "código de Gray" para el "código binario
reflejado"; uno de ellas también se refiere al código como "mínimum error Code"
(código de error mínimo) y como "cyclic permutation Code" (código de permutación
cíclica).

Conversiones para convertir el código binario a código Gray podemos seguir el


siguiente procedimiento:

1. El bit más significativo en el código Gray es el mismo que el que corresponde al más
significativo del número binario.

2. Comenzando de izquierda a derecha, se debe sumar cada par adyacente de los bits en
código binario para obtener el siguiente bit en código Gray. No tenemos en cuenta los
acarreos.

Para convertir de código Gray a binario, se utiliza un método similar al descrito


anteriormente. Igual podemos seguir el siguiente procedimiento.
1. El bit más significativo en el código binario es el mismo que el que corresponde al bit
del código Gray.

2. A cada bit del código binario generado se le suma el bit en código Gray de la
siguiente posición adyacente. No tenemos en cuenta los acarreos.

Historia y Aplicaciones Prácticas


El código binario reflejado fue aplicado para acertijos matemáticos antes de ser usado
para la ingeniería. El ingeniero francés Émile Baudot le dio una aplicación al código de
Gray en 1878 en telegrafía, trabajo por el cual fue condecorado con la Legión de Honor.

Hasta la primera mitad de los años 1940 los circuitos lógicos digitales se realizaban con
válvulas de vacío y dispositivos electromecánicos. Los contadores necesitaban potencias
muy elevadas a la entrada y generaban picos de ruido cuando varios bits cambiaban
simultáneamente. Tomando esto en cuenta, Frank Gray inventó un método para
convertir señales analógicas a grupos de código binario reflejado utilizando un aparato
diseñado con válvulas de vacío, con lo cual garantizó que en cualquier transición
variaría tan sólo un bit.

En la actualidad, el código Gray se emplea como parte del algoritmo de diseño de los
mapas de Karnaugh, los cuales son, a su vez, utilizados como "herramienta de diseño"
en la implementación de circuitos combinacionales y circuitos secuenciales. La vigencia
del código Gray se debe a que un diseño digital eficiente requerirá transiciones más
simples y rápidas entre estados lógicos (0 ó 1), por ello es que se persisten en su uso, a
pesar de que los problemas de ruido y potencia se hayan reducido con la tecnología de
estado sólido de los circuitos integrados.

Utilizando el código Gray es posible también resolver el problema de las Torres de


Hanói. Se puede incluso formar un ciclo hamiltoniano o un hipercubo, en el que cada bit
se puede ver como una dimensión.

Debido a las propiedades de distancia de Hamming que posee el código Gray, es usado
en ocasiones en algoritmos genéticos.

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:

El problema con el código binario en base 2 es que con interruptores mecánicos, es


realmente difícil que todos los interruptores cambien al mismo tiempo. En la transición
de los dos estados mostrados arriba, tres interruptores cambian de sitio. En el lapso en el
que los interruptores están cambiando, se pueden presentar salidas de información
espurias. Si las salidas mencionadas alimentan un circuito secuencial, probablemente el
sistema presentará un error en entrada de datos.
El código gray resuelve este problema cambiando solamente un dígito a la vez, así que
no existe este problema:

tienes que tener en cuenta que para convertir de binarios a Gray los valores que deben
ser sumados en base 2 toman los siguientes valores 1+1=0, 0+0=0 , 1+0=1 y 0+1=1 esta
operación de forma vertical como se muestra en el siguiente ejemplo:

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

Base 2 a Gray
Para convertir un número binario (en Base 2) a código Gray, simplemente se le aplica
una operación XOR con el mismo número desplazado un bit a la derecha, sin tener en
cuenta el acarreo.

Ejemplo: 1010 (Base 2) a gray


Otros ejemplos 0111(Base 2) a gray:

Debido a los numerosos problemas a la hora de realizar la transmisión, es necesario


utilizar técnicas que permitan detectar y corregir los errores que se hayan producido.
Estas técnicas se basan siempre en la idea de añadir cierta información redundante a la
información que desee enviarse. A partir de ella el receptor puede determinar, de forma
bastante fiable, si los bits recibidos corresponden realmente a los enviados. Algunos
métodos son:
Código de Paridad
 Añade a cada dato un bit de paridad
 Permite detectar un error en un bit
 Paridad par, paridad impar

Códigos Correctores
 Permiten detectar errores en más de un bit
 El código debe ser capaz de indicar los bits erróneos
Ejemplos:
Códigos de paridad múltiple
Código Hamming
Códigos polinomiales (CRC)

Código Hamming
Distancia Hamming entre dos vectores: es el número de bits en el que toman valores
diferentes.

Ej. Distancia Hamming 2 c1=0101 y c2 = 1100

 Distancia de un código es la mínima distancia Hamming entre todas las posibles


combinaciones distintas del código.
 Teorema: Si la distancia de un código es d, entonces podemos detectar errores
que afecten a d-1 bit.
 Teorema: Si la distancia de un código es d, entonces es posible detectar y
corregir los errores que afecten a t bits según la siguiente expresión: d = 2·t+1

Ejemplos: Números naturales 0….15 codificados en binario con 4 bit.

 Distancia del código: 1


 No es posible detectar ni corregir ningún error en los bit.

Ejemplos: Números naturales 0…..15 codificados en binario con 4 bit con bit de
paridad par.
 Distancia del código: 2
 Es posible detectar errores en un bit. No es posible corregir ningún error.

Ejemplos: Código Hamming de los 15 primeros números naturales

 Distancia del código: 3


 Es posible detectar errores en dos bit. Es posible corregir errores en un bit.

Código Hamming
El código de Hamming es
un código detector y
corrector de errores que
lleva el nombre de su
inventor, Richard
Hamming. En los datos
codificados en Hamming
se pueden detectar errores
en un bit y corregirlos, sin
embargo no se distingue entre errores de dos bits y de un bit (para lo que se usa
Hamming extendido). Esto representa una mejora respecto a los códigos con bit de
paridad, que pueden detectar errores en sólo un bit, pero no pueden corregirlo.

Hamming Extendido
También se utiliza el “Hamming Extendido” para asegurar una mejor detección.
Simplemente consiste en añadir una fila adicional completa, y un nuevo bit de paridad
en la primera posición.
Código BCD (Binary-Coded Decimal (BCD) o Decimal codificado). Binario es un
estándar para representar números decimales en el sistema binario, en donde cada dígito
decimal es codificado con una secuencia de 4 bits.

Con esta codificación especial de los dígitos decimales en el sistema binario, se pueden
realizar operaciones aritméticas como suma, resta, multiplicación y división de números
en representación decimal, sin perder en los cálculos la precisión ni tener las
inexactitudes en que normalmente se incurre con las conversiones de decimal a binario
puro y de binario puro a decimal.

La conversión de los números decimales a BCD y viceversa es muy sencilla, pero los
cálculos en BCD se llevan más tiempo y son algo más complicados que con números
binarios puros.

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.

Además, con el concepto de distancia se puede definir la distancia mínima de un código.


Ésta no es más que la distancia menor que haya entre dos de las combinaciones de ese
código.

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).

Utilizando el código BCD, se simplifica la manipulación de los datos numéricos que


deben ser mostrados por ejemplo en un visualizador de siete segmentos. Esto lleva a su
vez una simplificación en el diseño físico del circuito (hardware).

Si la cantidad numérica fuera almacenada y manipulada en binario natural, el circuito


sería mucho más complejo que si se utiliza el BCD. Hay un programa que se llama
b1411 que sirve para dividir al sistema binario en dos combinaciones. Una por ejemplo
es la de sistemas digitales.

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.
Ejemplo
 La codificación en BCD del número decimal 59237 es:

Decimal: 5 9 2 3 7
BCD: 0101 1001 0010 0011 0111

La representación anterior (en BCD) es diferente de la representación del mismo


número decimal en binario puro:

11100111 01100101
 Conversión directa típica entre un número en decimal y uno binario. 8510 =
10101012. La representación el mismo número decimal en código BCD se
muestra a la derecha.

 Conversión directa típica entre un número en decimal y uno binario. 56810 =


10001110002. La representación el mismo número decimal en código BCD se
muestra a la derecha.

El Código Binario natural es el que todos nosotros conocemos comúnmente como


código binario, es un sistema de numeración posicional ponderado en base 2, esto
quiere decir que solamente se emplean dos símbolos y sirve para representar cantidades
numéricas. A cada dígito de una combinación se le llama bit. Al ser la base igual a 2, la
representación decimal de un número binario se halla por el Teorema Fundamental de la
Numeración como sumas de potencias de 2. Además, se cumple que con una cadena de
n bits se pueden representar [2^n] combinaciones.

CODIGO BCD NATURAL.

Al hacerse necesario el mostrar los datos en formato decimal, se necesita tantos


elementos como dígitos tenga el dato, ejemplo las calculadoras, donde la visualización
de los datos se realiza mediante visualizadores display de siete segmentos.

En estas aplicaciones aquellos códigos que hacen que se representen cada uno de estos
dígitos decimales, se denominan códigos BCD, significando decimal codificado en
binario (Binary Coded Decimal).

Entre estos códigos, el de más interés práctico, encontramos e l BCD natural, que basa
en representar cada dígito decimal a su correspondiente binario natural. Cada dígito
corresponde a un grupo de 4 bits.
Se requiere que los datos de entrada decimales, sean convertidos internamente a BCD.
Para obtener los datos se requiere una conversión inversa. (Pasar de BCD a decimal)

Para realizar esto se requieren unos circuitos integrados (CI) codificadores y


decodificadores que junto con los display, permiten operar en el sistema decimal,
aunque el aparato lo haga internamente en binario.

El código BCD es un código ponderado; a cada bit le corresponde un valor (peso) de


acuerdo con la posición que ocupa, igual que el binario natural. Los pesos son: 8-4-2-1.

La representación del 1 al 9 corresponde con el binario natural, pero a partir del número
decimal 10, se precisan dos grupos de 4 bits por dígito.

Ejemplo: el número 13.


0001 0011
13

 Para codificar un número decimal de N dígitos se requieren N grupos de 4 bits.

Ejemplo: 2001

2 = 0010 0010 0000 0000 0001


0 = 0000 2 0 0 1
0 = 0000
1 = 0001
Tabla de Códigos BCD

Decimal Código BCD

0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 0001 0000
11 0001 0001
12 0001 0010
13 0001 0011
14 0001 0100
15 0001 0101

Los números decimales se convierten a binario BCD mediante circuitos codificadores y


mediante decodificadores y unidades de visualización (displays) se hace la
representación decimal de códigos BCD.
El código BCD natural es el normalmente utilizado cuando tiene que haber
representación numérica; es el ejemplo de calculadoras, instrumental, sistemas de
control industrial etc...

El código BCD Aiken es un código similar al código BCD natural pero con los “pesos”
o “valores” distribuidos de una manera diferente. En el código BCD natural, los pesos
son: 8 – 4 – 2 – 1, en el código Aiken la distribución es: 2 – 4 – 2 – 1.

La razón de esta codificación es la de conseguir simetría entre ciertos números. Ver la


simetría en el código Aiken correspondiente a los decimales: 4 y 5, 3 y 6, 2 y 7, 1 y 8, 0
y 9.

Analizar la tabla que se muestra en la figura anterior. Cada cifra es el complemento a 9


de la cifra simétrica en todos sus dígitos.(los “1” se vuelven “0” y los “0” se vuelven
“1”). Ejemplo: 3 (0011) y 6 (1100).Tomar en cuenta los nuevos “pesos” en este código.
El código Aiken es muy útil para realizar operaciones de resta y división.
El código binario Exceso-3, o 3-exceso1 (normalmente abreviado como XS-3 o X3) o
código Stibitz (por George Stibitz) es un código decimal codificado en binario auto-
complementario y un sistema de numeración. Es una representación parcial. Exceso-3
fue utilizado en varias computadoras antiguas al igual que en cajas registradoras y
calculadoras electrónicas portátiles en la década del '70, además de muchas otras cosas.

Representación
Los códigos parciales son una forma de representar valores con un número balanceado
de positivos y negativos utilizando un número pre-especificado”N” como valor de
parcialidad. Los códigos parciales (y los códigos Gray) son códigos no ponderados. En
XS-3, los números son representados como dígitos decimales, y cada dígito es
representado por cuatro bits como el valor del dígito más 3 (la cantidad "de exceso"):

 El número binario más pequeño representa al valor más pequeño


 El número binario más grande representa al valor más grande

Para codificar un número como el 127, uno simplemente codificada cada uno de los dígitos
decimales de arriba, dando
Deriva su nombre de exceso 3 debido a que cada grupo de 4 bits equivale al número
BCD 8421 más 3.

El código de exceso 3 para un número decimal se efectúa de la misma forma que el


BCD, excepto que se suma el número 3 a cada dígito decimal antes de codificarlo en
binario. Por ejemplo, para codificar el número decimal 4 en código de exceso 3 primero
debemos sumar 3 y obtenemos 7. Luego el 7 se codifica en su equivalente binario de 4
bits, 0111.

Para poner otro ejemplo convirtamos el número 48 en representación en código de


exceso 3:

La tabla siguiente contiene las representaciones en código BCD y de exceso 3 para los
dígitos decimales. Nótese que ambos códigos solo emplean 10 de los 16 posibles grupos
de códigos de 4 bits. Sin embargo, el código de exceso 3 no usa los mismos grupos de
código. Para el código de exceso 3, los grupos de código no válidos son: 0000, 0001,
0010, 1101, 1110 y 1111.

Este código no es ponderado, es decir, los bits no tienen un peso asociado.


BCD Exceso a 3: 576 = 1000 1010 1001
Ocurre cuando de uno a otro código cambia solo un bit a la vez.

Esta propiedad existe cuando entre un elemento del código y su consecutivo, sólo
cambia 1 bit. Se basa en la forma en que está construido el código. Ayudan a eliminar el
efecto transicional o de la transición

Códigos de distancia unitaria No Ponderados


Un código de distancia unitaria no ponderado es aquel cuyas palabras de código
adyacentes difieren en un solo bit de posición.

Códigos Reflejados No Ponderados


Consiste en pares de palabras del código, en los cuales los miembros de los pares:

a) Ocupan posiciones correspondientes arriba y abajo de la línea de la línea divisora de


la tabla y difieren en un solo bit de posición.

Códigos Gray Es un código de distancia unitaria reflejado.


El código binario reflejado o código Gray, nombrado así en honor del investigador
Frank Gray, es un sistema de numeración binario en el que dos números consecutivos
difieren solamente en uno de sus dígitos.

El código Gray fue diseñado originalmente para prevenir señales ilegales (señales falsas
o viciadas en la representación) de los switches electromecánicos, y actualmente es
usado para facilitar la corrección de errores en los sistemas de comunicaciones, tales
como algunos sistemas de televisión por cable y la televisión digital terrestre.

El investigador de Laboratorios Bell, Frank Gray inventó el término código binario


reflejado cuando lo patentó en 1947, remarcando que éste "no tenía nombre reconocido
aún". Él creó el nombre basándose en el hecho de que el código "puede ser construido a
partir del código binario convencional por una suerte de 'proceso reflejante'".

El código fue llamado posteriormente "Gray" por otros investigadores. Dos patentes en
1953 dieron como nombre alternativo "código de Gray" para el "código binario
reflejado"; uno de ellas también se refiere al código como "mínimum error Code"
(código de error mínimo) y como "cyclic permutation Code" (código de permutación
cíclica).

Conversiones para convertir el código binario a código Gray podemos seguir el


siguiente procedimiento:

1. El bit más significativo en el código Gray es el mismo que el que corresponde al más
significativo del número binario.

2. Comenzando de izquierda a derecha, se debe sumar cada par adyacente de los bits en
código binario para obtener el siguiente bit en código Gray. No tenemos en cuenta los
acarreos.

Para convertir de código Gray a binario, se utiliza un método similar al descrito


anteriormente. Igual podemos seguir el siguiente procedimiento.
1. El bit más significativo en el código binario es el mismo que el que corresponde al bit
del código Gray.

2. A cada bit del código binario generado se le suma el bit en código Gray de la
siguiente posición adyacente. No tenemos en cuenta los acarreos.

Historia y Aplicaciones Prácticas


El código binario reflejado fue aplicado para acertijos matemáticos antes de ser usado
para la ingeniería. El ingeniero francés Émile Baudot le dio una aplicación al código de
Gray en 1878 en telegrafía, trabajo por el cual fue condecorado con la Legión de Honor.

Hasta la primera mitad de los años 1940 los circuitos lógicos digitales se realizaban con
válvulas de vacío y dispositivos electromecánicos. Los contadores necesitaban potencias
muy elevadas a la entrada y generaban picos de ruido cuando varios bits cambiaban
simultáneamente. Tomando esto en cuenta, Frank Gray inventó un método para
convertir señales analógicas a grupos de código binario reflejado utilizando un aparato
diseñado con válvulas de vacío, con lo cual garantizó que en cualquier transición
variaría tan sólo un bit.

En la actualidad, el código Gray se emplea como parte del algoritmo de diseño de los
mapas de Karnaugh, los cuales son, a su vez, utilizados como "herramienta de diseño"
en la implementación de circuitos combinacionales y circuitos secuenciales. La vigencia
del código Gray se debe a que un diseño digital eficiente requerirá transiciones más
simples y rápidas entre estados lógicos (0 ó 1), por ello es que se persisten en su uso, a
pesar de que los problemas de ruido y potencia se hayan reducido con la tecnología de
estado sólido de los circuitos integrados.

Utilizando el código Gray es posible también resolver el problema de las Torres de


Hanói. Se puede incluso formar un ciclo hamiltoniano o un hipercubo, en el que cada bit
se puede ver como una dimensión.

Debido a las propiedades de distancia de Hamming que posee el código Gray, es usado
en ocasiones en algoritmos genéticos.

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:

El problema con el código binario en base 2 es que con interruptores mecánicos, es


realmente difícil que todos los interruptores cambien al mismo tiempo. En la transición
de los dos estados mostrados arriba, tres interruptores cambian de sitio. En el lapso en el
que los interruptores están cambiando, se pueden presentar salidas de información
espurias. Si las salidas mencionadas alimentan un circuito secuencial, probablemente el
sistema presentará un error en entrada de datos.
El código gray resuelve este problema cambiando solamente un dígito a la vez, así que
no existe este problema:

tienes que tener en cuenta que para convertir de binarios a Gray los valores que deben
ser sumados en base 2 toman los siguientes valores 1+1=0, 0+0=0 , 1+0=1 y 0+1=1 esta
operación de forma vertical como se muestra en el siguiente ejemplo:

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

Base 2 a Gray
Para convertir un número binario (en Base 2) a código Gray, simplemente se le aplica
una operación XOR con el mismo número desplazado un bit a la derecha, sin tener en
cuenta el acarreo.

Ejemplo: 1010 (Base 2) a gray


Otros ejemplos 0111(Base 2) a gray:

Debido a los numerosos problemas a la hora de realizar la transmisión, es necesario


utilizar técnicas que permitan detectar y corregir los errores que se hayan producido.
Estas técnicas se basan siempre en la idea de añadir cierta información redundante a la
información que desee enviarse. A partir de ella el receptor puede determinar, de forma
bastante fiable, si los bits recibidos corresponden realmente a los enviados. Algunos
métodos son:
Código de Paridad
 Añade a cada dato un bit de paridad
 Permite detectar un error en un bit
 Paridad par, paridad impar

Códigos Correctores
 Permiten detectar errores en más de un bit
 El código debe ser capaz de indicar los bits erróneos
Ejemplos:
Códigos de paridad múltiple
Código Hamming
Códigos polinomiales (CRC)

Código Hamming
Distancia Hamming entre dos vectores: es el número de bits en el que toman valores
diferentes.

Ej. Distancia Hamming 2 c1=0101 y c2 = 1100

 Distancia de un código es la mínima distancia Hamming entre todas las posibles


combinaciones distintas del código.
 Teorema: Si la distancia de un código es d, entonces podemos detectar errores
que afecten a d-1 bit.
 Teorema: Si la distancia de un código es d, entonces es posible detectar y
corregir los errores que afecten a t bits según la siguiente expresión: d = 2·t+1

Ejemplos: Números naturales 0….15 codificados en binario con 4 bit.

 Distancia del código: 1


 No es posible detectar ni corregir ningún error en los bit.

Ejemplos: Números naturales 0…..15 codificados en binario con 4 bit con bit de
paridad par.
 Distancia del código: 2
 Es posible detectar errores en un bit. No es posible corregir ningún error.

Ejemplos: Código Hamming de los 15 primeros números naturales

 Distancia del código: 3


 Es posible detectar errores en dos bit. Es posible corregir errores en un bit.

Código Hamming
El código de Hamming es
un código detector y
corrector de errores que
lleva el nombre de su
inventor, Richard
Hamming. En los datos
codificados en Hamming
se pueden detectar errores
en un bit y corregirlos, sin
embargo no se distingue entre errores de dos bits y de un bit (para lo que se usa
Hamming extendido). Esto representa una mejora respecto a los códigos con bit de
paridad, que pueden detectar errores en sólo un bit, pero no pueden corregirlo.

Hamming Extendido
También se utiliza el “Hamming Extendido” para asegurar una mejor detección.
Simplemente consiste en añadir una fila adicional completa, y un nuevo bit de paridad
en la primera posición.
Código BCD (Binary-Coded Decimal (BCD) o Decimal codificado). Binario es un
estándar para representar números decimales en el sistema binario, en donde cada dígito
decimal es codificado con una secuencia de 4 bits.

Con esta codificación especial de los dígitos decimales en el sistema binario, se pueden
realizar operaciones aritméticas como suma, resta, multiplicación y división de números
en representación decimal, sin perder en los cálculos la precisión ni tener las
inexactitudes en que normalmente se incurre con las conversiones de decimal a binario
puro y de binario puro a decimal.

La conversión de los números decimales a BCD y viceversa es muy sencilla, pero los
cálculos en BCD se llevan más tiempo y son algo más complicados que con números
binarios puros.

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.

Además, con el concepto de distancia se puede definir la distancia mínima de un código.


Ésta no es más que la distancia menor que haya entre dos de las combinaciones de ese
código.

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).

Utilizando el código BCD, se simplifica la manipulación de los datos numéricos que


deben ser mostrados por ejemplo en un visualizador de siete segmentos. Esto lleva a su
vez una simplificación en el diseño físico del circuito (hardware).

Si la cantidad numérica fuera almacenada y manipulada en binario natural, el circuito


sería mucho más complejo que si se utiliza el BCD. Hay un programa que se llama
b1411 que sirve para dividir al sistema binario en dos combinaciones. Una por ejemplo
es la de sistemas digitales.

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.
Ejemplo
 La codificación en BCD del número decimal 59237 es:

Decimal: 5 9 2 3 7
BCD: 0101 1001 0010 0011 0111

La representación anterior (en BCD) es diferente de la representación del mismo


número decimal en binario puro:

11100111 01100101
 Conversión directa típica entre un número en decimal y uno binario. 8510 =
10101012. La representación el mismo número decimal en código BCD se
muestra a la derecha.

 Conversión directa típica entre un número en decimal y uno binario. 56810 =


10001110002. La representación el mismo número decimal en código BCD se
muestra a la derecha.

El Código Binario natural es el que todos nosotros conocemos comúnmente como


código binario, es un sistema de numeración posicional ponderado en base 2, esto
quiere decir que solamente se emplean dos símbolos y sirve para representar cantidades
numéricas. A cada dígito de una combinación se le llama bit. Al ser la base igual a 2, la
representación decimal de un número binario se halla por el Teorema Fundamental de la
Numeración como sumas de potencias de 2. Además, se cumple que con una cadena de
n bits se pueden representar [2^n] combinaciones.

CODIGO BCD NATURAL.

Al hacerse necesario el mostrar los datos en formato decimal, se necesita tantos


elementos como dígitos tenga el dato, ejemplo las calculadoras, donde la visualización
de los datos se realiza mediante visualizadores display de siete segmentos.

En estas aplicaciones aquellos códigos que hacen que se representen cada uno de estos
dígitos decimales, se denominan códigos BCD, significando decimal codificado en
binario (Binary Coded Decimal).

Entre estos códigos, el de más interés práctico, encontramos e l BCD natural, que basa
en representar cada dígito decimal a su correspondiente binario natural. Cada dígito
corresponde a un grupo de 4 bits.
Se requiere que los datos de entrada decimales, sean convertidos internamente a BCD.
Para obtener los datos se requiere una conversión inversa. (Pasar de BCD a decimal)

Para realizar esto se requieren unos circuitos integrados (CI) codificadores y


decodificadores que junto con los display, permiten operar en el sistema decimal,
aunque el aparato lo haga internamente en binario.

El código BCD es un código ponderado; a cada bit le corresponde un valor (peso) de


acuerdo con la posición que ocupa, igual que el binario natural. Los pesos son: 8-4-2-1.

La representación del 1 al 9 corresponde con el binario natural, pero a partir del número
decimal 10, se precisan dos grupos de 4 bits por dígito.

Ejemplo: el número 13.


0001 0011
13

 Para codificar un número decimal de N dígitos se requieren N grupos de 4 bits.

Ejemplo: 2001

2 = 0010 0010 0000 0000 0001


0 = 0000 2 0 0 1
0 = 0000
1 = 0001
Tabla de Códigos BCD

Decimal Código BCD

0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 0001 0000
11 0001 0001
12 0001 0010
13 0001 0011
14 0001 0100
15 0001 0101

Los números decimales se convierten a binario BCD mediante circuitos codificadores y


mediante decodificadores y unidades de visualización (displays) se hace la
representación decimal de códigos BCD.
El código BCD natural es el normalmente utilizado cuando tiene que haber
representación numérica; es el ejemplo de calculadoras, instrumental, sistemas de
control industrial etc...

El código BCD Aiken es un código similar al código BCD natural pero con los “pesos”
o “valores” distribuidos de una manera diferente. En el código BCD natural, los pesos
son: 8 – 4 – 2 – 1, en el código Aiken la distribución es: 2 – 4 – 2 – 1.

La razón de esta codificación es la de conseguir simetría entre ciertos números. Ver la


simetría en el código Aiken correspondiente a los decimales: 4 y 5, 3 y 6, 2 y 7, 1 y 8, 0
y 9.

Analizar la tabla que se muestra en la figura anterior. Cada cifra es el complemento a 9


de la cifra simétrica en todos sus dígitos.(los “1” se vuelven “0” y los “0” se vuelven
“1”). Ejemplo: 3 (0011) y 6 (1100).Tomar en cuenta los nuevos “pesos” en este código.
El código Aiken es muy útil para realizar operaciones de resta y división.
El código binario Exceso-3, o 3-exceso1 (normalmente abreviado como XS-3 o X3) o
código Stibitz (por George Stibitz) es un código decimal codificado en binario auto-
complementario y un sistema de numeración. Es una representación parcial. Exceso-3
fue utilizado en varias computadoras antiguas al igual que en cajas registradoras y
calculadoras electrónicas portátiles en la década del '70, además de muchas otras cosas.

Representación
Los códigos parciales son una forma de representar valores con un número balanceado
de positivos y negativos utilizando un número pre-especificado”N” como valor de
parcialidad. Los códigos parciales (y los códigos Gray) son códigos no ponderados. En
XS-3, los números son representados como dígitos decimales, y cada dígito es
representado por cuatro bits como el valor del dígito más 3 (la cantidad "de exceso"):

 El número binario más pequeño representa al valor más pequeño


 El número binario más grande representa al valor más grande

Para codificar un número como el 127, uno simplemente codificada cada uno de los dígitos
decimales de arriba, dando
Deriva su nombre de exceso 3 debido a que cada grupo de 4 bits equivale al número
BCD 8421 más 3.

El código de exceso 3 para un número decimal se efectúa de la misma forma que el


BCD, excepto que se suma el número 3 a cada dígito decimal antes de codificarlo en
binario. Por ejemplo, para codificar el número decimal 4 en código de exceso 3 primero
debemos sumar 3 y obtenemos 7. Luego el 7 se codifica en su equivalente binario de 4
bits, 0111.

Para poner otro ejemplo convirtamos el número 48 en representación en código de


exceso 3:

La tabla siguiente contiene las representaciones en código BCD y de exceso 3 para los
dígitos decimales. Nótese que ambos códigos solo emplean 10 de los 16 posibles grupos
de códigos de 4 bits. Sin embargo, el código de exceso 3 no usa los mismos grupos de
código. Para el código de exceso 3, los grupos de código no válidos son: 0000, 0001,
0010, 1101, 1110 y 1111.

Este código no es ponderado, es decir, los bits no tienen un peso asociado.


BCD Exceso a 3: 576 = 1000 1010 1001
Ocurre cuando de uno a otro código cambia solo un bit a la vez.

Esta propiedad existe cuando entre un elemento del código y su consecutivo, sólo
cambia 1 bit. Se basa en la forma en que está construido el código. Ayudan a eliminar el
efecto transicional o de la transición

Códigos de distancia unitaria No Ponderados


Un código de distancia unitaria no ponderado es aquel cuyas palabras de código
adyacentes difieren en un solo bit de posición.

Códigos Reflejados No Ponderados


Consiste en pares de palabras del código, en los cuales los miembros de los pares:

a) Ocupan posiciones correspondientes arriba y abajo de la línea de la línea divisora de


la tabla y difieren en un solo bit de posición.

Códigos Gray Es un código de distancia unitaria reflejado.


El código binario reflejado o código Gray, nombrado así en honor del investigador
Frank Gray, es un sistema de numeración binario en el que dos números consecutivos
difieren solamente en uno de sus dígitos.

El código Gray fue diseñado originalmente para prevenir señales ilegales (señales falsas
o viciadas en la representación) de los switches electromecánicos, y actualmente es
usado para facilitar la corrección de errores en los sistemas de comunicaciones, tales
como algunos sistemas de televisión por cable y la televisión digital terrestre.

El investigador de Laboratorios Bell, Frank Gray inventó el término código binario


reflejado cuando lo patentó en 1947, remarcando que éste "no tenía nombre reconocido
aún". Él creó el nombre basándose en el hecho de que el código "puede ser construido a
partir del código binario convencional por una suerte de 'proceso reflejante'".

El código fue llamado posteriormente "Gray" por otros investigadores. Dos patentes en
1953 dieron como nombre alternativo "código de Gray" para el "código binario
reflejado"; uno de ellas también se refiere al código como "mínimum error Code"
(código de error mínimo) y como "cyclic permutation Code" (código de permutación
cíclica).

Conversiones para convertir el código binario a código Gray podemos seguir el


siguiente procedimiento:

1. El bit más significativo en el código Gray es el mismo que el que corresponde al más
significativo del número binario.

2. Comenzando de izquierda a derecha, se debe sumar cada par adyacente de los bits en
código binario para obtener el siguiente bit en código Gray. No tenemos en cuenta los
acarreos.

Para convertir de código Gray a binario, se utiliza un método similar al descrito


anteriormente. Igual podemos seguir el siguiente procedimiento.
1. El bit más significativo en el código binario es el mismo que el que corresponde al bit
del código Gray.

2. A cada bit del código binario generado se le suma el bit en código Gray de la
siguiente posición adyacente. No tenemos en cuenta los acarreos.

Historia y Aplicaciones Prácticas


El código binario reflejado fue aplicado para acertijos matemáticos antes de ser usado
para la ingeniería. El ingeniero francés Émile Baudot le dio una aplicación al código de
Gray en 1878 en telegrafía, trabajo por el cual fue condecorado con la Legión de Honor.

Hasta la primera mitad de los años 1940 los circuitos lógicos digitales se realizaban con
válvulas de vacío y dispositivos electromecánicos. Los contadores necesitaban potencias
muy elevadas a la entrada y generaban picos de ruido cuando varios bits cambiaban
simultáneamente. Tomando esto en cuenta, Frank Gray inventó un método para
convertir señales analógicas a grupos de código binario reflejado utilizando un aparato
diseñado con válvulas de vacío, con lo cual garantizó que en cualquier transición
variaría tan sólo un bit.

En la actualidad, el código Gray se emplea como parte del algoritmo de diseño de los
mapas de Karnaugh, los cuales son, a su vez, utilizados como "herramienta de diseño"
en la implementación de circuitos combinacionales y circuitos secuenciales. La vigencia
del código Gray se debe a que un diseño digital eficiente requerirá transiciones más
simples y rápidas entre estados lógicos (0 ó 1), por ello es que se persisten en su uso, a
pesar de que los problemas de ruido y potencia se hayan reducido con la tecnología de
estado sólido de los circuitos integrados.

Utilizando el código Gray es posible también resolver el problema de las Torres de


Hanói. Se puede incluso formar un ciclo hamiltoniano o un hipercubo, en el que cada bit
se puede ver como una dimensión.

Debido a las propiedades de distancia de Hamming que posee el código Gray, es usado
en ocasiones en algoritmos genéticos.

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:

El problema con el código binario en base 2 es que con interruptores mecánicos, es


realmente difícil que todos los interruptores cambien al mismo tiempo. En la transición
de los dos estados mostrados arriba, tres interruptores cambian de sitio. En el lapso en el
que los interruptores están cambiando, se pueden presentar salidas de información
espurias. Si las salidas mencionadas alimentan un circuito secuencial, probablemente el
sistema presentará un error en entrada de datos.
El código gray resuelve este problema cambiando solamente un dígito a la vez, así que
no existe este problema:

tienes que tener en cuenta que para convertir de binarios a Gray los valores que deben
ser sumados en base 2 toman los siguientes valores 1+1=0, 0+0=0 , 1+0=1 y 0+1=1 esta
operación de forma vertical como se muestra en el siguiente ejemplo:

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

Base 2 a Gray
Para convertir un número binario (en Base 2) a código Gray, simplemente se le aplica
una operación XOR con el mismo número desplazado un bit a la derecha, sin tener en
cuenta el acarreo.

Ejemplo: 1010 (Base 2) a gray


Otros ejemplos 0111(Base 2) a gray:

Debido a los numerosos problemas a la hora de realizar la transmisión, es necesario


utilizar técnicas que permitan detectar y corregir los errores que se hayan producido.
Estas técnicas se basan siempre en la idea de añadir cierta información redundante a la
información que desee enviarse. A partir de ella el receptor puede determinar, de forma
bastante fiable, si los bits recibidos corresponden realmente a los enviados. Algunos
métodos son:
Código de Paridad
 Añade a cada dato un bit de paridad
 Permite detectar un error en un bit
 Paridad par, paridad impar

Códigos Correctores
 Permiten detectar errores en más de un bit
 El código debe ser capaz de indicar los bits erróneos
Ejemplos:
Códigos de paridad múltiple
Código Hamming
Códigos polinomiales (CRC)

Código Hamming
Distancia Hamming entre dos vectores: es el número de bits en el que toman valores
diferentes.

Ej. Distancia Hamming 2 c1=0101 y c2 = 1100

 Distancia de un código es la mínima distancia Hamming entre todas las posibles


combinaciones distintas del código.
 Teorema: Si la distancia de un código es d, entonces podemos detectar errores
que afecten a d-1 bit.
 Teorema: Si la distancia de un código es d, entonces es posible detectar y
corregir los errores que afecten a t bits según la siguiente expresión: d = 2·t+1

Ejemplos: Números naturales 0….15 codificados en binario con 4 bit.

 Distancia del código: 1


 No es posible detectar ni corregir ningún error en los bit.

Ejemplos: Números naturales 0…..15 codificados en binario con 4 bit con bit de
paridad par.
 Distancia del código: 2
 Es posible detectar errores en un bit. No es posible corregir ningún error.

Ejemplos: Código Hamming de los 15 primeros números naturales

 Distancia del código: 3


 Es posible detectar errores en dos bit. Es posible corregir errores en un bit.

Código Hamming
El código de Hamming es
un código detector y
corrector de errores que
lleva el nombre de su
inventor, Richard
Hamming. En los datos
codificados en Hamming
se pueden detectar errores
en un bit y corregirlos, sin
embargo no se distingue entre errores de dos bits y de un bit (para lo que se usa
Hamming extendido). Esto representa una mejora respecto a los códigos con bit de
paridad, que pueden detectar errores en sólo un bit, pero no pueden corregirlo.

Hamming Extendido
También se utiliza el “Hamming Extendido” para asegurar una mejor detección.
Simplemente consiste en añadir una fila adicional completa, y un nuevo bit de paridad
en la primera posición.
Código BCD (Binary-Coded Decimal (BCD) o Decimal codificado). Binario es un
estándar para representar números decimales en el sistema binario, en donde cada dígito
decimal es codificado con una secuencia de 4 bits.

Con esta codificación especial de los dígitos decimales en el sistema binario, se pueden
realizar operaciones aritméticas como suma, resta, multiplicación y división de números
en representación decimal, sin perder en los cálculos la precisión ni tener las
inexactitudes en que normalmente se incurre con las conversiones de decimal a binario
puro y de binario puro a decimal.

La conversión de los números decimales a BCD y viceversa es muy sencilla, pero los
cálculos en BCD se llevan más tiempo y son algo más complicados que con números
binarios puros.

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.

Además, con el concepto de distancia se puede definir la distancia mínima de un código.


Ésta no es más que la distancia menor que haya entre dos de las combinaciones de ese
código.

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).

Utilizando el código BCD, se simplifica la manipulación de los datos numéricos que


deben ser mostrados por ejemplo en un visualizador de siete segmentos. Esto lleva a su
vez una simplificación en el diseño físico del circuito (hardware).

Si la cantidad numérica fuera almacenada y manipulada en binario natural, el circuito


sería mucho más complejo que si se utiliza el BCD. Hay un programa que se llama
b1411 que sirve para dividir al sistema binario en dos combinaciones. Una por ejemplo
es la de sistemas digitales.

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.
Ejemplo
 La codificación en BCD del número decimal 59237 es:

Decimal: 5 9 2 3 7
BCD: 0101 1001 0010 0011 0111

La representación anterior (en BCD) es diferente de la representación del mismo


número decimal en binario puro:

11100111 01100101
 Conversión directa típica entre un número en decimal y uno binario. 8510 =
10101012. La representación el mismo número decimal en código BCD se
muestra a la derecha.

 Conversión directa típica entre un número en decimal y uno binario. 56810 =


10001110002. La representación el mismo número decimal en código BCD se
muestra a la derecha.

El Código Binario natural es el que todos nosotros conocemos comúnmente como


código binario, es un sistema de numeración posicional ponderado en base 2, esto
quiere decir que solamente se emplean dos símbolos y sirve para representar cantidades
numéricas. A cada dígito de una combinación se le llama bit. Al ser la base igual a 2, la
representación decimal de un número binario se halla por el Teorema Fundamental de la
Numeración como sumas de potencias de 2. Además, se cumple que con una cadena de
n bits se pueden representar [2^n] combinaciones.

CODIGO BCD NATURAL.

Al hacerse necesario el mostrar los datos en formato decimal, se necesita tantos


elementos como dígitos tenga el dato, ejemplo las calculadoras, donde la visualización
de los datos se realiza mediante visualizadores display de siete segmentos.

En estas aplicaciones aquellos códigos que hacen que se representen cada uno de estos
dígitos decimales, se denominan códigos BCD, significando decimal codificado en
binario (Binary Coded Decimal).

Entre estos códigos, el de más interés práctico, encontramos e l BCD natural, que basa
en representar cada dígito decimal a su correspondiente binario natural. Cada dígito
corresponde a un grupo de 4 bits.
Se requiere que los datos de entrada decimales, sean convertidos internamente a BCD.
Para obtener los datos se requiere una conversión inversa. (Pasar de BCD a decimal)

Para realizar esto se requieren unos circuitos integrados (CI) codificadores y


decodificadores que junto con los display, permiten operar en el sistema decimal,
aunque el aparato lo haga internamente en binario.

El código BCD es un código ponderado; a cada bit le corresponde un valor (peso) de


acuerdo con la posición que ocupa, igual que el binario natural. Los pesos son: 8-4-2-1.

La representación del 1 al 9 corresponde con el binario natural, pero a partir del número
decimal 10, se precisan dos grupos de 4 bits por dígito.

Ejemplo: el número 13.


0001 0011
13

 Para codificar un número decimal de N dígitos se requieren N grupos de 4 bits.

Ejemplo: 2001

2 = 0010 0010 0000 0000 0001


0 = 0000 2 0 0 1
0 = 0000
1 = 0001
Tabla de Códigos BCD

Decimal Código BCD

0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 0001 0000
11 0001 0001
12 0001 0010
13 0001 0011
14 0001 0100
15 0001 0101

Los números decimales se convierten a binario BCD mediante circuitos codificadores y


mediante decodificadores y unidades de visualización (displays) se hace la
representación decimal de códigos BCD.
El código BCD natural es el normalmente utilizado cuando tiene que haber
representación numérica; es el ejemplo de calculadoras, instrumental, sistemas de
control industrial etc...

El código BCD Aiken es un código similar al código BCD natural pero con los “pesos”
o “valores” distribuidos de una manera diferente. En el código BCD natural, los pesos
son: 8 – 4 – 2 – 1, en el código Aiken la distribución es: 2 – 4 – 2 – 1.

La razón de esta codificación es la de conseguir simetría entre ciertos números. Ver la


simetría en el código Aiken correspondiente a los decimales: 4 y 5, 3 y 6, 2 y 7, 1 y 8, 0
y 9.

Analizar la tabla que se muestra en la figura anterior. Cada cifra es el complemento a 9


de la cifra simétrica en todos sus dígitos.(los “1” se vuelven “0” y los “0” se vuelven
“1”). Ejemplo: 3 (0011) y 6 (1100).Tomar en cuenta los nuevos “pesos” en este código.
El código Aiken es muy útil para realizar operaciones de resta y división.
El código binario Exceso-3, o 3-exceso1 (normalmente abreviado como XS-3 o X3) o
código Stibitz (por George Stibitz) es un código decimal codificado en binario auto-
complementario y un sistema de numeración. Es una representación parcial. Exceso-3
fue utilizado en varias computadoras antiguas al igual que en cajas registradoras y
calculadoras electrónicas portátiles en la década del '70, además de muchas otras cosas.

Representación
Los códigos parciales son una forma de representar valores con un número balanceado
de positivos y negativos utilizando un número pre-especificado”N” como valor de
parcialidad. Los códigos parciales (y los códigos Gray) son códigos no ponderados. En
XS-3, los números son representados como dígitos decimales, y cada dígito es
representado por cuatro bits como el valor del dígito más 3 (la cantidad "de exceso"):

 El número binario más pequeño representa al valor más pequeño


 El número binario más grande representa al valor más grande

Para codificar un número como el 127, uno simplemente codificada cada uno de los dígitos
decimales de arriba, dando
Deriva su nombre de exceso 3 debido a que cada grupo de 4 bits equivale al número
BCD 8421 más 3.

El código de exceso 3 para un número decimal se efectúa de la misma forma que el


BCD, excepto que se suma el número 3 a cada dígito decimal antes de codificarlo en
binario. Por ejemplo, para codificar el número decimal 4 en código de exceso 3 primero
debemos sumar 3 y obtenemos 7. Luego el 7 se codifica en su equivalente binario de 4
bits, 0111.

Para poner otro ejemplo convirtamos el número 48 en representación en código de


exceso 3:

La tabla siguiente contiene las representaciones en código BCD y de exceso 3 para los
dígitos decimales. Nótese que ambos códigos solo emplean 10 de los 16 posibles grupos
de códigos de 4 bits. Sin embargo, el código de exceso 3 no usa los mismos grupos de
código. Para el código de exceso 3, los grupos de código no válidos son: 0000, 0001,
0010, 1101, 1110 y 1111.

Este código no es ponderado, es decir, los bits no tienen un peso asociado.


BCD Exceso a 3: 576 = 1000 1010 1001
Ocurre cuando de uno a otro código cambia solo un bit a la vez.

Esta propiedad existe cuando entre un elemento del código y su consecutivo, sólo
cambia 1 bit. Se basa en la forma en que está construido el código. Ayudan a eliminar el
efecto transicional o de la transición

Códigos de distancia unitaria No Ponderados


Un código de distancia unitaria no ponderado es aquel cuyas palabras de código
adyacentes difieren en un solo bit de posición.

Códigos Reflejados No Ponderados


Consiste en pares de palabras del código, en los cuales los miembros de los pares:

a) Ocupan posiciones correspondientes arriba y abajo de la línea de la línea divisora de


la tabla y difieren en un solo bit de posición.

Códigos Gray Es un código de distancia unitaria reflejado.


El código binario reflejado o código Gray, nombrado así en honor del investigador
Frank Gray, es un sistema de numeración binario en el que dos números consecutivos
difieren solamente en uno de sus dígitos.

El código Gray fue diseñado originalmente para prevenir señales ilegales (señales falsas
o viciadas en la representación) de los switches electromecánicos, y actualmente es
usado para facilitar la corrección de errores en los sistemas de comunicaciones, tales
como algunos sistemas de televisión por cable y la televisión digital terrestre.

El investigador de Laboratorios Bell, Frank Gray inventó el término código binario


reflejado cuando lo patentó en 1947, remarcando que éste "no tenía nombre reconocido
aún". Él creó el nombre basándose en el hecho de que el código "puede ser construido a
partir del código binario convencional por una suerte de 'proceso reflejante'".

El código fue llamado posteriormente "Gray" por otros investigadores. Dos patentes en
1953 dieron como nombre alternativo "código de Gray" para el "código binario
reflejado"; uno de ellas también se refiere al código como "mínimum error Code"
(código de error mínimo) y como "cyclic permutation Code" (código de permutación
cíclica).

Conversiones para convertir el código binario a código Gray podemos seguir el


siguiente procedimiento:

1. El bit más significativo en el código Gray es el mismo que el que corresponde al más
significativo del número binario.

2. Comenzando de izquierda a derecha, se debe sumar cada par adyacente de los bits en
código binario para obtener el siguiente bit en código Gray. No tenemos en cuenta los
acarreos.

Para convertir de código Gray a binario, se utiliza un método similar al descrito


anteriormente. Igual podemos seguir el siguiente procedimiento.
1. El bit más significativo en el código binario es el mismo que el que corresponde al bit
del código Gray.

2. A cada bit del código binario generado se le suma el bit en código Gray de la
siguiente posición adyacente. No tenemos en cuenta los acarreos.

Historia y Aplicaciones Prácticas


El código binario reflejado fue aplicado para acertijos matemáticos antes de ser usado
para la ingeniería. El ingeniero francés Émile Baudot le dio una aplicación al código de
Gray en 1878 en telegrafía, trabajo por el cual fue condecorado con la Legión de Honor.

Hasta la primera mitad de los años 1940 los circuitos lógicos digitales se realizaban con
válvulas de vacío y dispositivos electromecánicos. Los contadores necesitaban potencias
muy elevadas a la entrada y generaban picos de ruido cuando varios bits cambiaban
simultáneamente. Tomando esto en cuenta, Frank Gray inventó un método para
convertir señales analógicas a grupos de código binario reflejado utilizando un aparato
diseñado con válvulas de vacío, con lo cual garantizó que en cualquier transición
variaría tan sólo un bit.

En la actualidad, el código Gray se emplea como parte del algoritmo de diseño de los
mapas de Karnaugh, los cuales son, a su vez, utilizados como "herramienta de diseño"
en la implementación de circuitos combinacionales y circuitos secuenciales. La vigencia
del código Gray se debe a que un diseño digital eficiente requerirá transiciones más
simples y rápidas entre estados lógicos (0 ó 1), por ello es que se persisten en su uso, a
pesar de que los problemas de ruido y potencia se hayan reducido con la tecnología de
estado sólido de los circuitos integrados.

Utilizando el código Gray es posible también resolver el problema de las Torres de


Hanói. Se puede incluso formar un ciclo hamiltoniano o un hipercubo, en el que cada bit
se puede ver como una dimensión.

Debido a las propiedades de distancia de Hamming que posee el código Gray, es usado
en ocasiones en algoritmos genéticos.

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:

El problema con el código binario en base 2 es que con interruptores mecánicos, es


realmente difícil que todos los interruptores cambien al mismo tiempo. En la transición
de los dos estados mostrados arriba, tres interruptores cambian de sitio. En el lapso en el
que los interruptores están cambiando, se pueden presentar salidas de información
espurias. Si las salidas mencionadas alimentan un circuito secuencial, probablemente el
sistema presentará un error en entrada de datos.
El código gray resuelve este problema cambiando solamente un dígito a la vez, así que
no existe este problema:

tienes que tener en cuenta que para convertir de binarios a Gray los valores que deben
ser sumados en base 2 toman los siguientes valores 1+1=0, 0+0=0 , 1+0=1 y 0+1=1 esta
operación de forma vertical como se muestra en el siguiente ejemplo:

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

Base 2 a Gray
Para convertir un número binario (en Base 2) a código Gray, simplemente se le aplica
una operación XOR con el mismo número desplazado un bit a la derecha, sin tener en
cuenta el acarreo.

Ejemplo: 1010 (Base 2) a gray


Otros ejemplos 0111(Base 2) a gray:

Debido a los numerosos problemas a la hora de realizar la transmisión, es necesario


utilizar técnicas que permitan detectar y corregir los errores que se hayan producido.
Estas técnicas se basan siempre en la idea de añadir cierta información redundante a la
información que desee enviarse. A partir de ella el receptor puede determinar, de forma
bastante fiable, si los bits recibidos corresponden realmente a los enviados. Algunos
métodos son:
Código de Paridad
 Añade a cada dato un bit de paridad
 Permite detectar un error en un bit
 Paridad par, paridad impar

Códigos Correctores
 Permiten detectar errores en más de un bit
 El código debe ser capaz de indicar los bits erróneos
Ejemplos:
Códigos de paridad múltiple
Código Hamming
Códigos polinomiales (CRC)

Código Hamming
Distancia Hamming entre dos vectores: es el número de bits en el que toman valores
diferentes.

Ej. Distancia Hamming 2 c1=0101 y c2 = 1100

 Distancia de un código es la mínima distancia Hamming entre todas las posibles


combinaciones distintas del código.
 Teorema: Si la distancia de un código es d, entonces podemos detectar errores
que afecten a d-1 bit.
 Teorema: Si la distancia de un código es d, entonces es posible detectar y
corregir los errores que afecten a t bits según la siguiente expresión: d = 2·t+1

Ejemplos: Números naturales 0….15 codificados en binario con 4 bit.

 Distancia del código: 1


 No es posible detectar ni corregir ningún error en los bit.

Ejemplos: Números naturales 0…..15 codificados en binario con 4 bit con bit de
paridad par.
 Distancia del código: 2
 Es posible detectar errores en un bit. No es posible corregir ningún error.

Ejemplos: Código Hamming de los 15 primeros números naturales

 Distancia del código: 3


 Es posible detectar errores en dos bit. Es posible corregir errores en un bit.

Código Hamming
El código de Hamming es
un código detector y
corrector de errores que
lleva el nombre de su
inventor, Richard
Hamming. En los datos
codificados en Hamming
se pueden detectar errores
en un bit y corregirlos, sin
embargo no se distingue entre errores de dos bits y de un bit (para lo que se usa
Hamming extendido). Esto representa una mejora respecto a los códigos con bit de
paridad, que pueden detectar errores en sólo un bit, pero no pueden corregirlo.

Hamming Extendido
También se utiliza el “Hamming Extendido” para asegurar una mejor detección.
Simplemente consiste en añadir una fila adicional completa, y un nuevo bit de paridad
en la primera posición.
Código BCD (Binary-Coded Decimal (BCD) o Decimal codificado). Binario es un
estándar para representar números decimales en el sistema binario, en donde cada dígito
decimal es codificado con una secuencia de 4 bits.

Con esta codificación especial de los dígitos decimales en el sistema binario, se pueden
realizar operaciones aritméticas como suma, resta, multiplicación y división de números
en representación decimal, sin perder en los cálculos la precisión ni tener las
inexactitudes en que normalmente se incurre con las conversiones de decimal a binario
puro y de binario puro a decimal.

La conversión de los números decimales a BCD y viceversa es muy sencilla, pero los
cálculos en BCD se llevan más tiempo y son algo más complicados que con números
binarios puros.

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.

Además, con el concepto de distancia se puede definir la distancia mínima de un código.


Ésta no es más que la distancia menor que haya entre dos de las combinaciones de ese
código.

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).

Utilizando el código BCD, se simplifica la manipulación de los datos numéricos que


deben ser mostrados por ejemplo en un visualizador de siete segmentos. Esto lleva a su
vez una simplificación en el diseño físico del circuito (hardware).

Si la cantidad numérica fuera almacenada y manipulada en binario natural, el circuito


sería mucho más complejo que si se utiliza el BCD. Hay un programa que se llama
b1411 que sirve para dividir al sistema binario en dos combinaciones. Una por ejemplo
es la de sistemas digitales.

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.
Ejemplo
 La codificación en BCD del número decimal 59237 es:

Decimal: 5 9 2 3 7
BCD: 0101 1001 0010 0011 0111

La representación anterior (en BCD) es diferente de la representación del mismo


número decimal en binario puro:

11100111 01100101
 Conversión directa típica entre un número en decimal y uno binario. 8510 =
10101012. La representación el mismo número decimal en código BCD se
muestra a la derecha.

 Conversión directa típica entre un número en decimal y uno binario. 56810 =


10001110002. La representación el mismo número decimal en código BCD se
muestra a la derecha.

El Código Binario natural es el que todos nosotros conocemos comúnmente como


código binario, es un sistema de numeración posicional ponderado en base 2, esto
quiere decir que solamente se emplean dos símbolos y sirve para representar cantidades
numéricas. A cada dígito de una combinación se le llama bit. Al ser la base igual a 2, la
representación decimal de un número binario se halla por el Teorema Fundamental de la
Numeración como sumas de potencias de 2. Además, se cumple que con una cadena de
n bits se pueden representar [2^n] combinaciones.

CODIGO BCD NATURAL.

Al hacerse necesario el mostrar los datos en formato decimal, se necesita tantos


elementos como dígitos tenga el dato, ejemplo las calculadoras, donde la visualización
de los datos se realiza mediante visualizadores display de siete segmentos.

En estas aplicaciones aquellos códigos que hacen que se representen cada uno de estos
dígitos decimales, se denominan códigos BCD, significando decimal codificado en
binario (Binary Coded Decimal).

Entre estos códigos, el de más interés práctico, encontramos e l BCD natural, que basa
en representar cada dígito decimal a su correspondiente binario natural. Cada dígito
corresponde a un grupo de 4 bits.
Se requiere que los datos de entrada decimales, sean convertidos internamente a BCD.
Para obtener los datos se requiere una conversión inversa. (Pasar de BCD a decimal)

Para realizar esto se requieren unos circuitos integrados (CI) codificadores y


decodificadores que junto con los display, permiten operar en el sistema decimal,
aunque el aparato lo haga internamente en binario.

El código BCD es un código ponderado; a cada bit le corresponde un valor (peso) de


acuerdo con la posición que ocupa, igual que el binario natural. Los pesos son: 8-4-2-1.

La representación del 1 al 9 corresponde con el binario natural, pero a partir del número
decimal 10, se precisan dos grupos de 4 bits por dígito.

Ejemplo: el número 13.


0001 0011
13

 Para codificar un número decimal de N dígitos se requieren N grupos de 4 bits.

Ejemplo: 2001

2 = 0010 0010 0000 0000 0001


0 = 0000 2 0 0 1
0 = 0000
1 = 0001
Tabla de Códigos BCD

Decimal Código BCD

0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 0001 0000
11 0001 0001
12 0001 0010
13 0001 0011
14 0001 0100
15 0001 0101

Los números decimales se convierten a binario BCD mediante circuitos codificadores y


mediante decodificadores y unidades de visualización (displays) se hace la
representación decimal de códigos BCD.
El código BCD natural es el normalmente utilizado cuando tiene que haber
representación numérica; es el ejemplo de calculadoras, instrumental, sistemas de
control industrial etc...

El código BCD Aiken es un código similar al código BCD natural pero con los “pesos”
o “valores” distribuidos de una manera diferente. En el código BCD natural, los pesos
son: 8 – 4 – 2 – 1, en el código Aiken la distribución es: 2 – 4 – 2 – 1.

La razón de esta codificación es la de conseguir simetría entre ciertos números. Ver la


simetría en el código Aiken correspondiente a los decimales: 4 y 5, 3 y 6, 2 y 7, 1 y 8, 0
y 9.

Analizar la tabla que se muestra en la figura anterior. Cada cifra es el complemento a 9


de la cifra simétrica en todos sus dígitos.(los “1” se vuelven “0” y los “0” se vuelven
“1”). Ejemplo: 3 (0011) y 6 (1100).Tomar en cuenta los nuevos “pesos” en este código.
El código Aiken es muy útil para realizar operaciones de resta y división.
El código binario Exceso-3, o 3-exceso1 (normalmente abreviado como XS-3 o X3) o
código Stibitz (por George Stibitz) es un código decimal codificado en binario auto-
complementario y un sistema de numeración. Es una representación parcial. Exceso-3
fue utilizado en varias computadoras antiguas al igual que en cajas registradoras y
calculadoras electrónicas portátiles en la década del '70, además de muchas otras cosas.

Representación
Los códigos parciales son una forma de representar valores con un número balanceado
de positivos y negativos utilizando un número pre-especificado”N” como valor de
parcialidad. Los códigos parciales (y los códigos Gray) son códigos no ponderados. En
XS-3, los números son representados como dígitos decimales, y cada dígito es
representado por cuatro bits como el valor del dígito más 3 (la cantidad "de exceso"):

 El número binario más pequeño representa al valor más pequeño


 El número binario más grande representa al valor más grande

Para codificar un número como el 127, uno simplemente codificada cada uno de los dígitos
decimales de arriba, dando
Deriva su nombre de exceso 3 debido a que cada grupo de 4 bits equivale al número
BCD 8421 más 3.

El código de exceso 3 para un número decimal se efectúa de la misma forma que el


BCD, excepto que se suma el número 3 a cada dígito decimal antes de codificarlo en
binario. Por ejemplo, para codificar el número decimal 4 en código de exceso 3 primero
debemos sumar 3 y obtenemos 7. Luego el 7 se codifica en su equivalente binario de 4
bits, 0111.

Para poner otro ejemplo convirtamos el número 48 en representación en código de


exceso 3:

La tabla siguiente contiene las representaciones en código BCD y de exceso 3 para los
dígitos decimales. Nótese que ambos códigos solo emplean 10 de los 16 posibles grupos
de códigos de 4 bits. Sin embargo, el código de exceso 3 no usa los mismos grupos de
código. Para el código de exceso 3, los grupos de código no válidos son: 0000, 0001,
0010, 1101, 1110 y 1111.

Este código no es ponderado, es decir, los bits no tienen un peso asociado.


BCD Exceso a 3: 576 = 1000 1010 1001
Ocurre cuando de uno a otro código cambia solo un bit a la vez.

Esta propiedad existe cuando entre un elemento del código y su consecutivo, sólo
cambia 1 bit. Se basa en la forma en que está construido el código. Ayudan a eliminar el
efecto transicional o de la transición

Códigos de distancia unitaria No Ponderados


Un código de distancia unitaria no ponderado es aquel cuyas palabras de código
adyacentes difieren en un solo bit de posición.

Códigos Reflejados No Ponderados


Consiste en pares de palabras del código, en los cuales los miembros de los pares:

a) Ocupan posiciones correspondientes arriba y abajo de la línea de la línea divisora de


la tabla y difieren en un solo bit de posición.

Códigos Gray Es un código de distancia unitaria reflejado.


El código binario reflejado o código Gray, nombrado así en honor del investigador
Frank Gray, es un sistema de numeración binario en el que dos números consecutivos
difieren solamente en uno de sus dígitos.

El código Gray fue diseñado originalmente para prevenir señales ilegales (señales falsas
o viciadas en la representación) de los switches electromecánicos, y actualmente es
usado para facilitar la corrección de errores en los sistemas de comunicaciones, tales
como algunos sistemas de televisión por cable y la televisión digital terrestre.

El investigador de Laboratorios Bell, Frank Gray inventó el término código binario


reflejado cuando lo patentó en 1947, remarcando que éste "no tenía nombre reconocido
aún". Él creó el nombre basándose en el hecho de que el código "puede ser construido a
partir del código binario convencional por una suerte de 'proceso reflejante'".

El código fue llamado posteriormente "Gray" por otros investigadores. Dos patentes en
1953 dieron como nombre alternativo "código de Gray" para el "código binario
reflejado"; uno de ellas también se refiere al código como "mínimum error Code"
(código de error mínimo) y como "cyclic permutation Code" (código de permutación
cíclica).

Conversiones para convertir el código binario a código Gray podemos seguir el


siguiente procedimiento:

1. El bit más significativo en el código Gray es el mismo que el que corresponde al más
significativo del número binario.

2. Comenzando de izquierda a derecha, se debe sumar cada par adyacente de los bits en
código binario para obtener el siguiente bit en código Gray. No tenemos en cuenta los
acarreos.

Para convertir de código Gray a binario, se utiliza un método similar al descrito


anteriormente. Igual podemos seguir el siguiente procedimiento.
1. El bit más significativo en el código binario es el mismo que el que corresponde al bit
del código Gray.

2. A cada bit del código binario generado se le suma el bit en código Gray de la
siguiente posición adyacente. No tenemos en cuenta los acarreos.

Historia y Aplicaciones Prácticas


El código binario reflejado fue aplicado para acertijos matemáticos antes de ser usado
para la ingeniería. El ingeniero francés Émile Baudot le dio una aplicación al código de
Gray en 1878 en telegrafía, trabajo por el cual fue condecorado con la Legión de Honor.

Hasta la primera mitad de los años 1940 los circuitos lógicos digitales se realizaban con
válvulas de vacío y dispositivos electromecánicos. Los contadores necesitaban potencias
muy elevadas a la entrada y generaban picos de ruido cuando varios bits cambiaban
simultáneamente. Tomando esto en cuenta, Frank Gray inventó un método para
convertir señales analógicas a grupos de código binario reflejado utilizando un aparato
diseñado con válvulas de vacío, con lo cual garantizó que en cualquier transición
variaría tan sólo un bit.

En la actualidad, el código Gray se emplea como parte del algoritmo de diseño de los
mapas de Karnaugh, los cuales son, a su vez, utilizados como "herramienta de diseño"
en la implementación de circuitos combinacionales y circuitos secuenciales. La vigencia
del código Gray se debe a que un diseño digital eficiente requerirá transiciones más
simples y rápidas entre estados lógicos (0 ó 1), por ello es que se persisten en su uso, a
pesar de que los problemas de ruido y potencia se hayan reducido con la tecnología de
estado sólido de los circuitos integrados.

Utilizando el código Gray es posible también resolver el problema de las Torres de


Hanói. Se puede incluso formar un ciclo hamiltoniano o un hipercubo, en el que cada bit
se puede ver como una dimensión.

Debido a las propiedades de distancia de Hamming que posee el código Gray, es usado
en ocasiones en algoritmos genéticos.

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:

El problema con el código binario en base 2 es que con interruptores mecánicos, es


realmente difícil que todos los interruptores cambien al mismo tiempo. En la transición
de los dos estados mostrados arriba, tres interruptores cambian de sitio. En el lapso en el
que los interruptores están cambiando, se pueden presentar salidas de información
espurias. Si las salidas mencionadas alimentan un circuito secuencial, probablemente el
sistema presentará un error en entrada de datos.
El código gray resuelve este problema cambiando solamente un dígito a la vez, así que
no existe este problema:

tienes que tener en cuenta que para convertir de binarios a Gray los valores que deben
ser sumados en base 2 toman los siguientes valores 1+1=0, 0+0=0 , 1+0=1 y 0+1=1 esta
operación de forma vertical como se muestra en el siguiente ejemplo:

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

Base 2 a Gray
Para convertir un número binario (en Base 2) a código Gray, simplemente se le aplica
una operación XOR con el mismo número desplazado un bit a la derecha, sin tener en
cuenta el acarreo.

Ejemplo: 1010 (Base 2) a gray


Otros ejemplos 0111(Base 2) a gray:

Debido a los numerosos problemas a la hora de realizar la transmisión, es necesario


utilizar técnicas que permitan detectar y corregir los errores que se hayan producido.
Estas técnicas se basan siempre en la idea de añadir cierta información redundante a la
información que desee enviarse. A partir de ella el receptor puede determinar, de forma
bastante fiable, si los bits recibidos corresponden realmente a los enviados. Algunos
métodos son:
Código de Paridad
 Añade a cada dato un bit de paridad
 Permite detectar un error en un bit
 Paridad par, paridad impar

Códigos Correctores
 Permiten detectar errores en más de un bit
 El código debe ser capaz de indicar los bits erróneos
Ejemplos:
Códigos de paridad múltiple
Código Hamming
Códigos polinomiales (CRC)

Código Hamming
Distancia Hamming entre dos vectores: es el número de bits en el que toman valores
diferentes.

Ej. Distancia Hamming 2 c1=0101 y c2 = 1100

 Distancia de un código es la mínima distancia Hamming entre todas las posibles


combinaciones distintas del código.
 Teorema: Si la distancia de un código es d, entonces podemos detectar errores
que afecten a d-1 bit.
 Teorema: Si la distancia de un código es d, entonces es posible detectar y
corregir los errores que afecten a t bits según la siguiente expresión: d = 2·t+1

Ejemplos: Números naturales 0….15 codificados en binario con 4 bit.

 Distancia del código: 1


 No es posible detectar ni corregir ningún error en los bit.

Ejemplos: Números naturales 0…..15 codificados en binario con 4 bit con bit de
paridad par.
 Distancia del código: 2
 Es posible detectar errores en un bit. No es posible corregir ningún error.

Ejemplos: Código Hamming de los 15 primeros números naturales

 Distancia del código: 3


 Es posible detectar errores en dos bit. Es posible corregir errores en un bit.

Código Hamming
El código de Hamming es
un código detector y
corrector de errores que
lleva el nombre de su
inventor, Richard
Hamming. En los datos
codificados en Hamming
se pueden detectar errores
en un bit y corregirlos, sin
embargo no se distingue entre errores de dos bits y de un bit (para lo que se usa
Hamming extendido). Esto representa una mejora respecto a los códigos con bit de
paridad, que pueden detectar errores en sólo un bit, pero no pueden corregirlo.

Hamming Extendido
También se utiliza el “Hamming Extendido” para asegurar una mejor detección.
Simplemente consiste en añadir una fila adicional completa, y un nuevo bit de paridad
en la primera posición.
Código BCD (Binary-Coded Decimal (BCD) o Decimal codificado). Binario es un
estándar para representar números decimales en el sistema binario, en donde cada dígito
decimal es codificado con una secuencia de 4 bits.

Con esta codificación especial de los dígitos decimales en el sistema binario, se pueden
realizar operaciones aritméticas como suma, resta, multiplicación y división de números
en representación decimal, sin perder en los cálculos la precisión ni tener las
inexactitudes en que normalmente se incurre con las conversiones de decimal a binario
puro y de binario puro a decimal.

La conversión de los números decimales a BCD y viceversa es muy sencilla, pero los
cálculos en BCD se llevan más tiempo y son algo más complicados que con números
binarios puros.

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.

Además, con el concepto de distancia se puede definir la distancia mínima de un código.


Ésta no es más que la distancia menor que haya entre dos de las combinaciones de ese
código.

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).

Utilizando el código BCD, se simplifica la manipulación de los datos numéricos que


deben ser mostrados por ejemplo en un visualizador de siete segmentos. Esto lleva a su
vez una simplificación en el diseño físico del circuito (hardware).

Si la cantidad numérica fuera almacenada y manipulada en binario natural, el circuito


sería mucho más complejo que si se utiliza el BCD. Hay un programa que se llama
b1411 que sirve para dividir al sistema binario en dos combinaciones. Una por ejemplo
es la de sistemas digitales.

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.
Ejemplo
 La codificación en BCD del número decimal 59237 es:

Decimal: 5 9 2 3 7
BCD: 0101 1001 0010 0011 0111

La representación anterior (en BCD) es diferente de la representación del mismo


número decimal en binario puro:

11100111 01100101
 Conversión directa típica entre un número en decimal y uno binario. 8510 =
10101012. La representación el mismo número decimal en código BCD se
muestra a la derecha.

 Conversión directa típica entre un número en decimal y uno binario. 56810 =


10001110002. La representación el mismo número decimal en código BCD se
muestra a la derecha.

El Código Binario natural es el que todos nosotros conocemos comúnmente como


código binario, es un sistema de numeración posicional ponderado en base 2, esto
quiere decir que solamente se emplean dos símbolos y sirve para representar cantidades
numéricas. A cada dígito de una combinación se le llama bit. Al ser la base igual a 2, la
representación decimal de un número binario se halla por el Teorema Fundamental de la
Numeración como sumas de potencias de 2. Además, se cumple que con una cadena de
n bits se pueden representar [2^n] combinaciones.

CODIGO BCD NATURAL.

Al hacerse necesario el mostrar los datos en formato decimal, se necesita tantos


elementos como dígitos tenga el dato, ejemplo las calculadoras, donde la visualización
de los datos se realiza mediante visualizadores display de siete segmentos.

En estas aplicaciones aquellos códigos que hacen que se representen cada uno de estos
dígitos decimales, se denominan códigos BCD, significando decimal codificado en
binario (Binary Coded Decimal).

Entre estos códigos, el de más interés práctico, encontramos e l BCD natural, que basa
en representar cada dígito decimal a su correspondiente binario natural. Cada dígito
corresponde a un grupo de 4 bits.
Se requiere que los datos de entrada decimales, sean convertidos internamente a BCD.
Para obtener los datos se requiere una conversión inversa. (Pasar de BCD a decimal)

Para realizar esto se requieren unos circuitos integrados (CI) codificadores y


decodificadores que junto con los display, permiten operar en el sistema decimal,
aunque el aparato lo haga internamente en binario.

El código BCD es un código ponderado; a cada bit le corresponde un valor (peso) de


acuerdo con la posición que ocupa, igual que el binario natural. Los pesos son: 8-4-2-1.

La representación del 1 al 9 corresponde con el binario natural, pero a partir del número
decimal 10, se precisan dos grupos de 4 bits por dígito.

Ejemplo: el número 13.


0001 0011
13

 Para codificar un número decimal de N dígitos se requieren N grupos de 4 bits.

Ejemplo: 2001

2 = 0010 0010 0000 0000 0001


0 = 0000 2 0 0 1
0 = 0000
1 = 0001
Tabla de Códigos BCD

Decimal Código BCD

0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 0001 0000
11 0001 0001
12 0001 0010
13 0001 0011
14 0001 0100
15 0001 0101

Los números decimales se convierten a binario BCD mediante circuitos codificadores y


mediante decodificadores y unidades de visualización (displays) se hace la
representación decimal de códigos BCD.
El código BCD natural es el normalmente utilizado cuando tiene que haber
representación numérica; es el ejemplo de calculadoras, instrumental, sistemas de
control industrial etc...

El código BCD Aiken es un código similar al código BCD natural pero con los “pesos”
o “valores” distribuidos de una manera diferente. En el código BCD natural, los pesos
son: 8 – 4 – 2 – 1, en el código Aiken la distribución es: 2 – 4 – 2 – 1.

La razón de esta codificación es la de conseguir simetría entre ciertos números. Ver la


simetría en el código Aiken correspondiente a los decimales: 4 y 5, 3 y 6, 2 y 7, 1 y 8, 0
y 9.

Analizar la tabla que se muestra en la figura anterior. Cada cifra es el complemento a 9


de la cifra simétrica en todos sus dígitos.(los “1” se vuelven “0” y los “0” se vuelven
“1”). Ejemplo: 3 (0011) y 6 (1100).Tomar en cuenta los nuevos “pesos” en este código.
El código Aiken es muy útil para realizar operaciones de resta y división.
El código binario Exceso-3, o 3-exceso1 (normalmente abreviado como XS-3 o X3) o
código Stibitz (por George Stibitz) es un código decimal codificado en binario auto-
complementario y un sistema de numeración. Es una representación parcial. Exceso-3
fue utilizado en varias computadoras antiguas al igual que en cajas registradoras y
calculadoras electrónicas portátiles en la década del '70, además de muchas otras cosas.

Representación
Los códigos parciales son una forma de representar valores con un número balanceado
de positivos y negativos utilizando un número pre-especificado”N” como valor de
parcialidad. Los códigos parciales (y los códigos Gray) son códigos no ponderados. En
XS-3, los números son representados como dígitos decimales, y cada dígito es
representado por cuatro bits como el valor del dígito más 3 (la cantidad "de exceso"):

 El número binario más pequeño representa al valor más pequeño


 El número binario más grande representa al valor más grande

Para codificar un número como el 127, uno simplemente codificada cada uno de los dígitos
decimales de arriba, dando
Deriva su nombre de exceso 3 debido a que cada grupo de 4 bits equivale al número
BCD 8421 más 3.

El código de exceso 3 para un número decimal se efectúa de la misma forma que el


BCD, excepto que se suma el número 3 a cada dígito decimal antes de codificarlo en
binario. Por ejemplo, para codificar el número decimal 4 en código de exceso 3 primero
debemos sumar 3 y obtenemos 7. Luego el 7 se codifica en su equivalente binario de 4
bits, 0111.

Para poner otro ejemplo convirtamos el número 48 en representación en código de


exceso 3:

La tabla siguiente contiene las representaciones en código BCD y de exceso 3 para los
dígitos decimales. Nótese que ambos códigos solo emplean 10 de los 16 posibles grupos
de códigos de 4 bits. Sin embargo, el código de exceso 3 no usa los mismos grupos de
código. Para el código de exceso 3, los grupos de código no válidos son: 0000, 0001,
0010, 1101, 1110 y 1111.

Este código no es ponderado, es decir, los bits no tienen un peso asociado.


BCD Exceso a 3: 576 = 1000 1010 1001
Ocurre cuando de uno a otro código cambia solo un bit a la vez.

Esta propiedad existe cuando entre un elemento del código y su consecutivo, sólo
cambia 1 bit. Se basa en la forma en que está construido el código. Ayudan a eliminar el
efecto transicional o de la transición

Códigos de distancia unitaria No Ponderados


Un código de distancia unitaria no ponderado es aquel cuyas palabras de código
adyacentes difieren en un solo bit de posición.

Códigos Reflejados No Ponderados


Consiste en pares de palabras del código, en los cuales los miembros de los pares:

a) Ocupan posiciones correspondientes arriba y abajo de la línea de la línea divisora de


la tabla y difieren en un solo bit de posición.

Códigos Gray Es un código de distancia unitaria reflejado.


El código binario reflejado o código Gray, nombrado así en honor del investigador
Frank Gray, es un sistema de numeración binario en el que dos números consecutivos
difieren solamente en uno de sus dígitos.

El código Gray fue diseñado originalmente para prevenir señales ilegales (señales falsas
o viciadas en la representación) de los switches electromecánicos, y actualmente es
usado para facilitar la corrección de errores en los sistemas de comunicaciones, tales
como algunos sistemas de televisión por cable y la televisión digital terrestre.

El investigador de Laboratorios Bell, Frank Gray inventó el término código binario


reflejado cuando lo patentó en 1947, remarcando que éste "no tenía nombre reconocido
aún". Él creó el nombre basándose en el hecho de que el código "puede ser construido a
partir del código binario convencional por una suerte de 'proceso reflejante'".

El código fue llamado posteriormente "Gray" por otros investigadores. Dos patentes en
1953 dieron como nombre alternativo "código de Gray" para el "código binario
reflejado"; uno de ellas también se refiere al código como "mínimum error Code"
(código de error mínimo) y como "cyclic permutation Code" (código de permutación
cíclica).

Conversiones para convertir el código binario a código Gray podemos seguir el


siguiente procedimiento:

1. El bit más significativo en el código Gray es el mismo que el que corresponde al más
significativo del número binario.

2. Comenzando de izquierda a derecha, se debe sumar cada par adyacente de los bits en
código binario para obtener el siguiente bit en código Gray. No tenemos en cuenta los
acarreos.

Para convertir de código Gray a binario, se utiliza un método similar al descrito


anteriormente. Igual podemos seguir el siguiente procedimiento.
1. El bit más significativo en el código binario es el mismo que el que corresponde al bit
del código Gray.

2. A cada bit del código binario generado se le suma el bit en código Gray de la
siguiente posición adyacente. No tenemos en cuenta los acarreos.

Historia y Aplicaciones Prácticas


El código binario reflejado fue aplicado para acertijos matemáticos antes de ser usado
para la ingeniería. El ingeniero francés Émile Baudot le dio una aplicación al código de
Gray en 1878 en telegrafía, trabajo por el cual fue condecorado con la Legión de Honor.

Hasta la primera mitad de los años 1940 los circuitos lógicos digitales se realizaban con
válvulas de vacío y dispositivos electromecánicos. Los contadores necesitaban potencias
muy elevadas a la entrada y generaban picos de ruido cuando varios bits cambiaban
simultáneamente. Tomando esto en cuenta, Frank Gray inventó un método para
convertir señales analógicas a grupos de código binario reflejado utilizando un aparato
diseñado con válvulas de vacío, con lo cual garantizó que en cualquier transición
variaría tan sólo un bit.

En la actualidad, el código Gray se emplea como parte del algoritmo de diseño de los
mapas de Karnaugh, los cuales son, a su vez, utilizados como "herramienta de diseño"
en la implementación de circuitos combinacionales y circuitos secuenciales. La vigencia
del código Gray se debe a que un diseño digital eficiente requerirá transiciones más
simples y rápidas entre estados lógicos (0 ó 1), por ello es que se persisten en su uso, a
pesar de que los problemas de ruido y potencia se hayan reducido con la tecnología de
estado sólido de los circuitos integrados.

Utilizando el código Gray es posible también resolver el problema de las Torres de


Hanói. Se puede incluso formar un ciclo hamiltoniano o un hipercubo, en el que cada bit
se puede ver como una dimensión.

Debido a las propiedades de distancia de Hamming que posee el código Gray, es usado
en ocasiones en algoritmos genéticos.

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:

El problema con el código binario en base 2 es que con interruptores mecánicos, es


realmente difícil que todos los interruptores cambien al mismo tiempo. En la transición
de los dos estados mostrados arriba, tres interruptores cambian de sitio. En el lapso en el
que los interruptores están cambiando, se pueden presentar salidas de información
espurias. Si las salidas mencionadas alimentan un circuito secuencial, probablemente el
sistema presentará un error en entrada de datos.
El código gray resuelve este problema cambiando solamente un dígito a la vez, así que
no existe este problema:

tienes que tener en cuenta que para convertir de binarios a Gray los valores que deben
ser sumados en base 2 toman los siguientes valores 1+1=0, 0+0=0 , 1+0=1 y 0+1=1 esta
operación de forma vertical como se muestra en el siguiente ejemplo:

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

Base 2 a Gray
Para convertir un número binario (en Base 2) a código Gray, simplemente se le aplica
una operación XOR con el mismo número desplazado un bit a la derecha, sin tener en
cuenta el acarreo.

Ejemplo: 1010 (Base 2) a gray


Otros ejemplos 0111(Base 2) a gray:

Debido a los numerosos problemas a la hora de realizar la transmisión, es necesario


utilizar técnicas que permitan detectar y corregir los errores que se hayan producido.
Estas técnicas se basan siempre en la idea de añadir cierta información redundante a la
información que desee enviarse. A partir de ella el receptor puede determinar, de forma
bastante fiable, si los bits recibidos corresponden realmente a los enviados. Algunos
métodos son:
Código de Paridad
 Añade a cada dato un bit de paridad
 Permite detectar un error en un bit
 Paridad par, paridad impar

Códigos Correctores
 Permiten detectar errores en más de un bit
 El código debe ser capaz de indicar los bits erróneos
Ejemplos:
Códigos de paridad múltiple
Código Hamming
Códigos polinomiales (CRC)

Código Hamming
Distancia Hamming entre dos vectores: es el número de bits en el que toman valores
diferentes.

Ej. Distancia Hamming 2 c1=0101 y c2 = 1100

 Distancia de un código es la mínima distancia Hamming entre todas las posibles


combinaciones distintas del código.
 Teorema: Si la distancia de un código es d, entonces podemos detectar errores
que afecten a d-1 bit.
 Teorema: Si la distancia de un código es d, entonces es posible detectar y
corregir los errores que afecten a t bits según la siguiente expresión: d = 2·t+1

Ejemplos: Números naturales 0….15 codificados en binario con 4 bit.

 Distancia del código: 1


 No es posible detectar ni corregir ningún error en los bit.

Ejemplos: Números naturales 0…..15 codificados en binario con 4 bit con bit de
paridad par.
 Distancia del código: 2
 Es posible detectar errores en un bit. No es posible corregir ningún error.

Ejemplos: Código Hamming de los 15 primeros números naturales

 Distancia del código: 3


 Es posible detectar errores en dos bit. Es posible corregir errores en un bit.

Código Hamming
El código de Hamming es
un código detector y
corrector de errores que
lleva el nombre de su
inventor, Richard
Hamming. En los datos
codificados en Hamming
se pueden detectar errores
en un bit y corregirlos, sin
embargo no se distingue entre errores de dos bits y de un bit (para lo que se usa
Hamming extendido). Esto representa una mejora respecto a los códigos con bit de
paridad, que pueden detectar errores en sólo un bit, pero no pueden corregirlo.

Hamming Extendido
También se utiliza el “Hamming Extendido” para asegurar una mejor detección.
Simplemente consiste en añadir una fila adicional completa, y un nuevo bit de paridad
en la primera posición.

También podría gustarte