10.4 Códigos de caracteres.



10.4.1 Código Decimal Codificado en Binario (BCD). Sirve para representar los dígitos decimales del 0 al 9 y es un ejemplo de un código ponderado, es decir, cada posición de bit en el código tiene un valor o peso numérico fijo asociado a ella.

Este código asigna una representación binaria sin signo de 4 bits a cada dígito entre 0 y 9, no usándose las palabras del código entre 1010 y 1111.
 

La conversión entre las representaciones BCD y decimal se puede llevar a cabo simplemente sustituyendo 4 dígitos BCD por cada dígito decimal y viceversa. Sin embargo, en la práctica se suelen agrupar dos dígitos BCD en un byte de 8 bits, que por tanto puede representar cualquier valor comprendido entre 0 y 99.
 

Ejemplo 3.

Codificar el número N = (9750)10 en BCD.

Después se concatenan los códigos individuales para obtener

N = (1001011101010000)

El código BCD se puede utilizar en operaciones aritméticas. La suma es la más importante de estas operaciones, ya que las otras tres se pueden llevar a cabo utilizando la suma. Para sumar dos números en formato BCD se siguen los siguientes pasos:

Si una suma de cuatro bits es igual o menor que 9, es un número BCD válido.
Si una suma de 4 bits es mayor que 9, o si se genera un acarreo en el grupo de 4 bits, el resultado no es válido. En este caso, se suma 6 (0110) al grupo de 4 bits para saltar así los 6 estados no válidos y pasar al código BCD. Si se genera un acarreo al sumar 6, éste se suma al grupo de 4 bits siguiente.

10.4.2 Código ASCII. Es el código de caracteres más utilizado en las aplicaciones de cómputo. Por sus siglas en ingles se llama Código estándar americano para intercambio de información.

En general, una cadena de bits puede representar cualquier carácter, numérico o no. Dado que la mayoría de los procesadores de datos incluyen texto, los caracteres que se usan mas frecuentemente forman parte de un alfabeto, que se representa en el computador con una cadena de bits particular.

En este código, cada carácter se representa con una cadena de 7 bits. Este código codifica 128 caracteres diferentes, incluyendo mayúsculas y minúsculas, números, algunos signos de puntuación, y una serie de caracteres de control.

Cada una de las palabras del código ASCII suele almacenar en un byte, que incluye un bit de paridad extra que se usa para detección de errores.

10.4.3 Código Gray. Un código cíclico se puede definir como cualquier código en el que, para cualquier palabra de código, un corrimiento circular produce otra palabra del código. El código Gray es uno de los tipos más comunes de códigos cíclicos y tiene la característica de que las palabras de código para dos números consecutivos difieren sólo en un bit. Es decir, la distancia entre las dos palabras de código es 1. En general la distancia entre dos palabras de código binario es igual al número de bits en que difieren las dos palabras.
 

Para la conversión de código binario a código gray se siguen los siguientes pasos:
 

Para convertir de código gray a binario, se siguen los pasos siguientes:

Ejemplo 4.

Defina un código Gray para codificar los números decimales del 0 al 15.
 

Solución.

Se necesitan cuatro bits para representar todos los números, y podemos construir el código necesario asignando al bit i de la palabra de código el valor 0 sí los bits i e i + 1 del número binario correspondientes son iguales, y 1 en caso contrario.

El bit más significativo del número siempre se debe comparar con 0 al utilizar esta técnica. El código resultante es:
 
 
Decimal
Binario
Gray
0
0000
0000
1
0001
0001
2
0010
0011
3
0011
0010
4
0100
0110
5
0101
0111
6
0110
0101
7
0111
0100
8
1000
1100
9
1001
1101
10
1010
1111
11
1011
1110
12
1100
1010
13
1101
1011
14
1110
1001
15
1111
1000