En sistemas de computación, Binary-Coded Decimal (BCD) o Decimal codificado en binario es un estándar para representar numeros 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.
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.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:11100111 01100101
1.1Tipos de conversiones
Ya que cada grupo de 4 bits solo puede representar a un único dígito decimal, la conversión de un numero decimal a un numero BCD se lleva a cabo de la siguiente forma: - Separamos al dígito decimal en cada uno de sus dígitos
- Cada dígito decimal se transforma a su equivalente BCD.
- El número obtenido es el equivalente en BCD del número decimal.
Figura 1: Conversión de decimal a BCD
De esta forma el decimal 469 equivale al BCD 010001100011
NOTA: En BCD los códigos 1010, 1011, 1100, 1101 y 1111 no tienen decimales equivalentes. Por lo tanto se les llaman códigos inválidos
1.2 CONVERSIÓN DECIMAL FRACCIONARIO A BCD
Se realiza del modo similar al anterior pero hay que tener en cuenta el punto binario, el punto del numero decimal se convertirá en el punto binario del código BCD.
Ejemplo: para convertir el decimal 74.42 a BCD:
Separamos el decimal en sus dígitos 7 4. 4 2.
Convertimos cada dígito a decimal a BCD, y colocamos el punto binario en la misma posición del punto decimal.
Figura 2: Conversión de decimal fraccionario a BCD
De esta forma el decimal 74.42 equivale al BCD 01100100. 010000101.
1.3 CONVERSIÓN DE BCD A DECIMAL
Ya que el código BCD son grupos de 4 bits, realizaremos lo siguiente:
- A partir de la izquierda separamos al número BCD en grupos de 4 bits.
- Cada grupo de 4 bits se convierte a su decimal correspondiente.
- El número obtenido es el equivalente decimal del número BCD.
Ejemplo: Convertir el número BCD 010101000011 a decimal.
Separamos en grupos de 4 bits a partir de la izquierda 0101 0100 0011.
Transformamos cada grupo a decimal.
Figura 3: Conversión de BCD a decimal.
El BCD 010101000011 equivale al decimal 543
1.4 CONVERSIÓN BCD FRACCIONARIO A DECIMAL
- A partir del punto binario separamos al número binario en grupos de 4 bits.
- Cada grupo de 4 bits se convierte a su equivalente decimal.
- El punto binario se convertirá en el punto decimal.
- El número obtenido equivale en decimal al número BCD.
Ejemplo: Convertir el número BCD 01110001.0000100 a decimal.
separamos en grupo de 4 bits 0111 0001. 0000 1000.
convertimos cada grupo a decimal y colocamos el punto binario como punto decimal.
Figura 4: Conversión de BCD fraccionario a decimal.
El BCD 01110001.00001000 equivale al decimal 71.08
2-Codigo gray
Para convertir un número binario a código Gray, se sigue el siguiente método:
1. Se suma el número en binario con el mismo, pero el segundo sumando debe correrse una cifra a la derecha. Ver el gráfico.
2. Se realiza una suma binaria cifra con cifra sin tomar en cuenta el acarreo y se obtiene la suma total.
3. Al resultado anterior se le elimina la ultima cifra del lado derecho (se elimina el cero que está en rojo), para obtener el código GRAY.
Ejercicios de binario a gray
(1010)2 convertir a gray
10101010----1111 (110101010001)2 convertir a gray 110101010001110101010001------------101111111001 (101011)2 convertir a gray 101011101011--------111110· El bit más significativo(el más a la izquierda) es el código binario es el mismo que el bit correspondiente en el codigo Gray.
· Sume cada bit generado del codigo binario al bit del codigo Gray en la siguiente poscion adyacente. Descarte acarreos.
Ejemplo:
Paso 1. El digito del codigo binario mas a la izquierda es el mismo que el digito del codigo Gray mas a la izquierda.
1 | 1 | 0 | 1 | 1 | Gray |
1 | Binario |
1 | 1 | 0 | 1 | 1 | Gray |
1 | 0 | Binario |
1 | 1 | 0 | 1 | 1 | Gray |
1 | 0 | 0 | Binario |
1 | 1 | 0 | 1 | 1 | Gray |
1 | 0 | 0 | 1 | Binario |
Paso 5. Sume el ultimo bit del código binario que se acaba de generar al bit del código Gray en la siguiente posición. Descarte acarreos.
1 | 1 | 0 | 1 | 1 | Gray |
1 | 0 | 0 | 1 | 0 | Binario |
La conversión ha sido completada; el codigo binario es 10010
Ejercicios
1001 gray= (1110)2
10101111 gray= (11001010)2
3-Alfanumerico
Los códigos alfanumericos sirven para representar
números, pero ; ¿y si queremos representar las letras del alfabeto o
algunos símbolos? ; ¿cómo lo haríamos?.
La solución está en los
códigos alfanuméricos, que no es más que un tipo de código diseñado
especialmente para representar números, letras del alfabeto (mayúsculas y
minúsculas), símbolos especiales, signos de puntuación y unos
caracteres de control.
Un código alfanumérico muy popular y
ampliamente utilizado, es el llamado código ASCII (American Standard
Code for Information Interchange), que en español quiere decir: código
estándar americano para el intercambio de información, el cual es un
código de siete bits muy utilizado en los sistemas digitales avanzados
(computadores, redes de transmisión de datos, etc.) para representar
hasta 128 (27) piezas de información diferentes, incluyendo letras,
números, signos de puntuación, instrucciones y caracteres especiales.
4-Codigo detector de error
Consiste en incluir en los datos transmitidos, una cantidad de bits redundantes de forma que permita al receptor detectar que se ha producido un error, pero no qué tipo de error ni donde, de forma que tiene que solicitar retransmisión
5-8421 execso 3 ,5421
En BCD cada cifra que representa un dígito decimal (0, 1,...8 y 9) se representa con su equivalente binario en cuatro bits (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). En la siguiente tabla se muestran los códigos BCD más empleados:
Decimal | Natural | 5 4 2 1 | Exceso 3 | |
---|---|---|---|---|
0 | 0000 | 0000 | 0011 | |
1 | 0001 | 0001 | 0100 | |
2 | 0010 | 0010 | 0101 | |
3 | 0011 | 0011 | 0110 | |
4 | 0100 | 0100 | 0111 | |
5 | 0101 | 1000 | 1000 | |
6 | 0110 | 1001 | 1001 | |
7 | 0111 | 1010 | 1010 | |
8 | 1000 | 1011 | 1011 | |
9 | 1001 | 1100 | 1100 |
Como se observa, con el BCD sólo se utilizan 10 de las 16 posibles combinaciones que se pueden formar con números de 4 bits, por lo que el sistema pierde capacidad de representación, aunque se facilita la compresión de los números. Esto es porque el BCD sólo se usa para representar cifras, no números en su totalidad. Esto quiere decir que para números de más de una cifra hacen falta dos números BCD.
Una forma sencilla de calcular números en BCD es sumando normalmente bit a bit, y si el conjunto de 4 bits sobrepasa el número 9, entonces se le suma un 6 (0110) en binario, para poder volver a empezar, como si hiciéramos un módulo al elemento sumante.
5.1 Codigo 8421
El BCD (el binario decimal codificado) es una forma directa asignada a un equivalente binario. Es posible asignar cargas a los bits binarios de acuerdo a sus posiciones. Las cargas en el codigo BCD son 8, 4, 2, 1.
Ejemplo:
Para representar el digito decimal 6 en código BCD sería:.
0110
Ya que 0 x 8 + 1 x 4 + 1 x 2 ÷ 0+1 = 6.Es posible asignar cargas negativas a un código decimal, tal como se muestra en el código 8, 4, -2, -1. En esta caso la combinación de bits 0110 se interpreta como el digito decimal 2, l obtenerse de 0 x 8 + 1 x 4 + 1 x (-2) + 0 x (-1)=2.
Un código decimal que se ha usado en algunos computadores viejos en el código de exceso a 3. Este último es un código sin carga, cuya asignación se obtiene del correspondiente valor en BCD una vez se haya sumado 3.
Los números se representan en computadores digitales en binario o decimal a través de un codigo binario. Cuando se estén especificando los datos el usuario gusta dar los datos en forma decimal. Las maneras decimales recibidas se almacenan internamente en el computador por medio del código decimal. Cada digito decimal requiere por lo menos cuatro elementos de almacenamiento binario. Los números decimales ses convierten a binarios cuando las operaciones aritméticas se hacen internamente con números representados en binario. Es posible también realizar operaciones aritméticas directamente en decimal con todos los números ya dejados en forma codificada.
6-Peso binario
Supongamos que queramos transformar el numero decimal 89532 a su correspondiente equivalencia en binario, aplicando el método de la división sucesiva por dos, llegaremos al siguiente resultado: 10101110110111100 pero para llegar a este resultado seguro te tomará cierto tiempo y trabajo, de igual forma si queremos diseñar un sencillo circuito digital en el que la cifra introducida en el teclado sea visualizada en la pantalla, se necesitarían una gran cantidad de compuertas lógicas para construir el circuito decodificado y codificador. Los códigos binarios con peso nos resuelven este problema pues estos códigos fueron diseñados para realizar la conversión de decimal a binario de una manera mucho mas fácil y rápida.
Bibliografias:
http://www.monografias.com/trabajos3/bcd/bcd.shtml
http://es.wikipedia.org/wiki/C%C3%B3digo_Hamming
http://es.wikipedia.org/wiki/Decimal_codificado_en_binario
http://techtastico.com/post/el-sistema-binario/
No hay comentarios:
Publicar un comentario