Está en la página 1de 14

CODIGO BCD

Decimal codificado en 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.

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 bits que representan sus
dígitos. Por 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:

1110011101100101

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.

Este código tiene muy pocas aplicaciones. La más conocida y evidente es la


representación de las cifras de los números decimales en displays de 7
segmentos.

Códigos de Hamming.

Es un método general propuesto por R. W Hamming usando una distancia


mínima m. Con este método, por cada entero m existe un código de hamming de
2m-1 bits que contiene m bits de paridad y 2m-1-m bits de información. En este
código, los bits de paridad y los bits de paridad se encuentran entremezclados de la
siguiente forma: Si se numeran las posiciones de los bits desde 1 hasta 2 m-1, los

bits en la posición 2k, donde , son los bits de paridad y los bits restantes
son bits de información.

El valor de cada bit de paridad se escoge de modo que el total de unos en un número
específico de bits sea par, y estos grupos se escogen de tal forma que ningún bit de
información se cubra con la misma combinación de bits de paridad. Es lo anterior lo
que proporciona al código su capacidad de corrección.

Para cada bit de paridad en la posición 2k, su grupo de bits de información


correspondiente incluye todos esos bits de información correspondiente cuya
representación binaria tenga un uno en la posición 2k. La siguiente tabla muestra
los grupos de paridad para un código de hamming de 7 bits o sea de la forma 2m-1
con m = 3. En este ejemplo, los bits de información son 4 y los bits de paridad son
3. Los bits de información están en las posiciones 7, 6, 5 ,3. Los bits de paridad
están en las posiciones 1, 2, 4.

POSICIÓN DE LOS BITS


En la tabla anterior, el grupo de paridad del bit de paridad situado en la posición 4
son los bits de información situados en las posiciones 7, 6, 5 que contienen unos en
la posición 2k o sea 4 cuando k = 2.

El grupo de paridad del bit de paridad situado en la posición 2 son los bits de
información situados en las posiciones 7, 6, 3 que contienen unos en la
posición 2k o sea 2 cuando k = 1.

El grupo de paridad del bit de paridad situado en la posición 1 son los bits de
información situados en las posiciones 7, 5, 3 que contienen unos en la
posición 2k o sea 1 cuando K = 0.

Como 111 es la representación binaria de 7, el bit de información en la posición 7


se usa para calcular el valor de los tres bits de paridad. Similarmente, el bit de
información en la posición 6 se usa para calcular el valor de los bits de paridad en
las posiciones 4 y 2; el bit de información en la posición 5 se usa se usa para calcular
el valor de los bits de paridad en las posiciones 4 y 1. Finalmente, el bit de
información en la posición 3 se usa para calcular el valor de los bits de paridad en
las posiciones 2 y 1.

De acuerdo con estos grupos de paridad, el valor del bit de paridad de la posición 1
tiene que elegirse de modo que el número de unos en las posiciones 7, 5, 3, 1 sea
par, mientras el bit de paridad en la posición 2 hace el número de unos par 7, 6, 3,
2 y el valor del bit de paridad en la posición cuatro hace el número de unos par en
las posiciones 7, 6, 5, 4.

Es fácil observar que, en estas condiciones, la distancia mínima es 3, o sea que


tienen que haber al menos tres cambios de un bit para convertir una palabra de
código en otra.

Para probar que un cambio de un bit siempre genera una palabra que no pertenece
al código, hay que observar que un cambio de un bit en una palabra del código
afecta al menos un bit de paridad.

Por otra parte, un cambio de dos bits en una palabra del código no cambia el valor
del bit de paridad si ambos bits pertenecen al mismo grupo de paridad. Sin embargo
ello no es posible ya que para dos posiciones cualquiera de una palabra del código
siempre hay un grupo de paridad que no incluye ambas posiciones. En otras
palabras, como dos bits cualquiera deben estar en distintas posiciones, sus
números binarios deben diferir al menos en un bit, así que siempre hay al menos un
grupo de paridad con un solo bit cambiado, lo cuál da lugar a una palabra que no
pertenece al código con al menos un valor de paridad incorrecto.

CODIGO 2 ENTRE 5

El código 2 entre 5 es un código utilizado para la detección de errores en


transmisiones digitales. Existen varios métodos para la codificación mediante el
sistema 2 entre 5. A continuación se explica uno de ellos: Se trata de un código
ponderado donde los pesos para los 4 primeros bits son 1,2,3,6. El bit más
significativo se utiliza para completar la paridad par. Tiene dos características a
tener en cuenta: - No existe codificación para el 0; hay que “inventarse” una - Sólo
puede haber dos bits a 1 entre los cinco bits (de ahí su nombre).

El código 2 entre 5, a veces confundido con el biquinario, es un código utilizado para


la detección de errores en transmisiones digitales.
Existen varios métodos para la codificación mediante el sistema 2 entre 5. A
continuación se explica uno de ellos:

Se trata de un código ponderado donde los pesos para los 4 primeros bits son 1, 2,
3, 6. El bit más significativo se utiliza para completar la paridad par. Tiene dos
características a tener en cuenta:

- No existe codificación para el 0; hay que “inventarse” una.

- Sólo puede haber dos bits a 1 entre los cinco bits (de ahí su nombre).

Si partimos de los pesos directos vemos que podemos codificar los números 1, 2, 3
y 6 utilizando un solo bit. En estos números se activa el bit de paridad a 1 para
cumplir la paridad par, quedando los números de esta manera:

Decimal 2 entre 5

1 11000

2 10100
3 10010
6 10001

El resto de números (4, 5, 7, 8 y 9) los formaremos por combinación de dos bits


(suma de pesos):

Decimal suma 2 entre


5

4 3+1 01010

5 3+2 00110
7 6+1 01001
8 6+2 00101
9 3+6 00011
Como ya hemos utilizado los dos bits posibles, no hace falta el bit de paridad, por lo
que permanece a 0

El 3 también podíamos haberlo obtenido mediante 2+1. Esta duplicidad es la que


se selecciona para representar el 0, ya que el 3 tiene su propio bit de peso igual a
3.

Decimal 2 entre 5

0 01100

También puede ser un código no ponderado, en el que los valores son:

0 = 00011
1 = 00101
2 = 00110
3 = 01001
4 = 01010
5 = 01100
6 = 10001
7 = 10010
8 = 10100
9 = 11000

CODIGO GRAY

El código Gray es un tipo especial de código binario que no es ponderado (los


dígitos que componen el código no tienen un peso asignado). Su característica es
que entre una combinación de dígitos y la siguiente, sea ésta anterior o posterior,
sólo hay una diferencia de un dígito.
Por eso también se le llama Código progresivo. Esta progresión sucede también
entre la última y la primera combinación. Por eso se le llama también código cíclico.

Secuencia Binario Gray Secuencia Binario Gray


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

El código GRAY es utilizado principalmente en sistemas de posición, ya sea angular


o lineal. Sus aplicaciones principales se encuentran en la industria y en robótica. En
robótica se utilizan unos discos codificados para dar la información de posición que
tiene un eje en particular. Esta información se da en código GRAY.
Analizando la tabla anterior se observa que:

 Cuando un número binario pasa de: 0111 a 1000 (de 7 a 8 en decimal) o de 1111
a 0000 (de 16 a 0 en decimal) cambian todas las cifras.
 Para el mismo caso pero en código Gray: 0100 a 1100 (de 7 a 8 en decimal) o
de 1000 a 0000 (de 16 a 0 en decimal) sólo ha cambiado una cifra.
La característica de pasar de un código al siguiente cambiando sólo un dígito
asegura menos posibilidades de error.

Códigos de paridad

Los códigos de paridad se utilizan para detectar errores en la transmisión de datos, y se obtienen
añadiendo a las combinaciones de los códigos un bit llamado de paridad. Puede ser de paridad par o
de paridad impar.
7 bits de byte con bit de paridad
datos par impar
0000000 00000000 00000001
1010001 10100011 10100010
1101001 11010010 11010011
1111111 11111111 11111110

Un bit de paridad es un dígito binario que indica si el número de bits con un valor
de 1 en un conjunto de bits es par o impar. Los bits de paridad conforman el método
de detección de errores más simple.

La paridad par es un caso especial del control de redundancia cíclica (CRC), donde
el bit de CRC se genera por el polinomio x+1.

Nótese que este método detecta los errores, pero no los corrige (salvo en el caso
de que la palabra transmitida sea de tamaño 1 bit (lo cual no es habitual)). Existen
dos variantes de este método, bit de paridad par y bit de paridad impar:

En el caso de la paridad par, se cuentan el número de unos. Si el total es impar, el


bit de paridad se establece en uno y por tanto la suma del total anterior con este bit
de paridad, daría par. Si el conteo de bits uno es par, entonces el bit de paridad
(par) se deja en 0, pues ya es par.

En el caso de la paridad impar, la situación es la contraria. Se suman los bits cuyo


valor es uno, si da un número impar de bits, entonces el bit de paridad (impar) es
cero. Y si la suma de los bits cuyo valor es uno es par, entonces el bit de paridad
(impar) se establece en uno, haciendo impar la cuenta total de bits uno.

Los códigos de paridad se usan en telecomunicaciones para detectar, y en algunos


casos corregir, errores en la transmisión. Para ellos se añade en origen un bit extra
llamado bit de paridad a los n bits que forman el carácter original.
Códigos Numéricos

Los códigos numéricos sirven para representar números con fines de procesamiento
y almacenamiento. Los números de punto fijo y de punto flotante son ejemplos de
estos códigos.

Números de punto fijo.

Se utilizan para representar tanto enteros con signo como fracciones con signo. En
ambos casos se usan los mismos sistemas de magnitud y signos de complemento
a dos o de complemento a uno para representar los valores con signo. Los enteros
de punto fijo tienen un punto binario implícito a la derecha del bit menos significativo;
las fracciones de punto fijo tienen un punto binario implícito entre el bit de signo y el
bit más significativo.

Representaciones con exceso o sesgadas.

Una representación con exceso K de un código C se forma sumando el valor K a


cada palabra del código C. Las representaciones con exceso se utilizan a menudo
para representar los exponentes de los números de punto flotante.

La representación con exceso 8 de la tabla siguiente, se obtiene al sumar (1000)2


al código de 4 bits.

Números de punto flotante.

Un número de punto flotante es un número N que se escribe como, N = M × rE


donde M, la mantisa, es un número de punto fijo que contiene los dígitos
significativos de N y E, el exponente o característica, es un entero de punto fijo.

Al deducir la representación de un número de punto flotante, la mantisa y la


característica se codifican por separado. La base es implícita y no se incluye en la
representación.
La mantisa, muchas veces, se codifica con magnitud y signo, por lo general como
una fracción.

Punto fijo. El punto decimal se fija en una determinada posición de la palabra de código. Los
dígitos binarios situados a la izquierda de esta posición representa a la parte entera , y los
situados a la derecha (incluyendo el de la posición fijada) a la parte decimal.

El problema de este tipo de representación surge cuando las cantidades a representar son muy
pequeñas o muy grandes, ya que las longitudes de palabra de código necesarias son
intratables. Para solucionar esta limitación surge una segunda forma de representar números
reales: el punto flotante.

Punto flotante. La resolución del problema nos la proporciona la representación exponencial


o científica. Efectivamente, partamos de nuestra experiencia. La escritura de muy grandes y
muy pequeñas cantidades con todas sus cifras supone un gran gasto de papel y paciencia,
además, normalmente no estamos interesados, o no se conoce la magnitud con la precisión
suficiente como para tener que escribirla con todos sus guarismos. Lo que hacemos en estos
casos es utilizar una notación exponencial que compacta en gran medida la representación.
Por ejemplo, para representar la masa del electrón o la del sol no escribimos:

me = 0.0000000000000000000000000009 gr

msol = 2000000000000000000000000000000000 gr.

Si no que lo hacemos de la siguiente manera:

me = 9 ⋅ 10-28 gr.

msol = 2 ⋅ 10 33 gr.

Vemos que la ganancia en espacio es evidente. Esta es la filosofía que se aplica en la


representación punto flotante. Se representa la cantidad puesta de la forma:
± m b e donde m = mantisa en valor absoluto

b = base del exponente

e = exponente.

Como el ordenador trabaja con aritmética binaria, las propiedades de ésta hacen que b = 2
(multiplicar o dividir por 2 a una combinación binaria, tiene el mismo efecto que multiplicar
o dividir por 10 a un número en decimal). Como esta asignación es fija, se da por
sobreentendida, de forma que la base no será representada. Nos queda, por lo tanto, que una
cantidad en la forma vista, queda perfectamente caracterizada si se especifica el valor del
signo, de la mantisa y del exponente. En esto se basa la codificación en punto flotante, la
palabra de código se divide en tres partes, en cada uno de las cuales se representa, por
separado y de la forma adecuada, el signo, la mantisa y el exponente.

Números binarios en representación, overflow y rangos de


números
Hasta la clase anterior, cuando escribíamos y operábamos con números binarios, los
presentábamos de manera simple y, como lo dice la regla, solo con unos y ceros.
Pero claro, ¿en qué casos los números en base dos no se escribirían solo con unos y ceros?
Si nos detenemos a pensar solo unos minutos, cuando nosotros, comúnmente, operamos con
números enteros, cualquier tipo de operación, el resultado nos puede dar negativo o positivo. Y
con solo agregar el signo correspondiente, sabemos con qué números estamos trabajando.
Con los números binarios, no es tan fácil. No es solo agregar los signos y ya está, problema
resuelto.
Cuando tratamos con números en base dos, estamos trabajando solo con números naturales.
A menos, que se aclare, que los números están “en representación”. Esto quiere decir, que los
números con los cuales nosotros estamos operando, pueden ser tanto negativos como
positivos.
Pero aun así, no les agregamos el signo, si no que les agregamos un uno, a la izquierda, a los
números negativos, y un cero, a la izquierda, a los números positivos
Es decir, que por una convención, que se decidió en algún momento, cuando un número está
en “representación” y el número comienza con un 0, es positivo, y cuando comienza con un 1,
es negativo.

Ejemplo:
¡Atención! Acá esta lo complicado. Con esto de la convención, solo podemos saber si el número
es negativo o positivo, pero para saber qué número es, tendremos que seguir unos pasos
dependiendo del número con el que comienza.

Cómo generar números binarios (en la representación de enteros):

Positivo: Los números positivos, en representación, se generan agregándole un 0 a la izquierda


del número a representar.

Aclaración: Si con dicho número, estamos operando, se le tendrá que agregar tantos ceros
necesarios para igualar los dígitos de los números a operar.

Negativo: Los números negativos, en representación, se generan a partir de tres sencillos


pasos.

 Se obtiene el número en binario.


 Se lo convierte a positivo (como lo mencionamos anteriormente).
 Se le realiza el complemento a la base.

Aclaración: Si con dicho número, estamos operando, se le tendrá que agregar tantos unos
necesarios para igualar los dígitos de los números a operar.

Overflow: desbordamiento

Dado que los números en un ordenador tienen una cantidad fija de bits, es posible que haya
overflow, es decir, que el resultado tenga demasiados bits. Esto también, claro, nos puede pasar
y nos pasa a nosotros mismos mientras operamos. Pero... ¿Cómo se cuando hay overflow?
Podemos identificarlo a causa de un resultado incorrecto ya que no tendrá el signo que debería
tener.
Si tengo una suma de un número positivo y un número negativo, el resultado puede dar negativo
o positivo, pero nunca va a haber overflow.
¡Ojo! Esto únicamente ocurre, cuando estamos trabajando en representación.

Rangos de números:

Los números binarios naturales de n bits pueden tener valores que van desde 0 hasta 2n – 1,
ya que los números usan un bit de signo. Un número de n bits sólo dedicará (n – 1) bits a
representar el tamaño.
Los números enteros pueden tener valores que van desde [–2n–1;+2n–1 – 1].

También podría gustarte