Códigos de computadora
Autor: Luis R. Morera González
La computadora solo puede reconocer dos estados: apagado ó encendido, los cuales se representan por los símbolos 0 y 1 respectivamente. Estos símbolos son los dígitos del sistema binario los cuales conocemos como bit. Las personas han organizado en la computadora estos símbolos individuales en patrones que tienen un significado, estos patrones se conocen como “bytes”. Esto es que cualquier símbolo que nosotros conocemos en la computadora se representa como un “byte”. La forma en que se representan los símbolos “bytes” en la computadora se conoce como código binario.
Hay diferentes tipos de códigos pero actualmente los más utilizados son el código ASCII (código “as-key”) y el código EBCDIC (código ëbb-se-dick”). ASCII es una abreviación para American Standard Code for Information Interchange. En el código ASCII se utilizan 7 bits para representar cualquier carácter de información. De estos 7 bits los primeros tres se conocen como bits de zona y los próximos cuatro se llaman bits numéricos. Por ejemplo la letra M se representa 1001101. Los bits de zona son 100 y los numéricos 1101. Con este código podemos representar hasta 27=128 caracteres. La Tabla 1 muestra el equivalente en binario, decimal y hexadecimal de los códigos ASCII para las letras mayúsculas del alfabeto.
Utilizando la Tabla 1 podemos encontrar la representación binaria, decimal y hexadecimal para la palabra AMOR en el código ASCII.
Representación |
A |
M |
O |
R |
Binaria |
1000001 |
1001101 |
1001111 |
1010010 |
Decimal |
65 |
77 |
79 |
82 |
Hexadecimal |
41 |
4D |
4F |
52 |
Muchas computadoras almacenan un bit adicional al comienzo de cada carácter este bit se conoce como bit de verificación o bit de paridad. El bit de paridad es escogido de tal forma que la suma decimal de todos los bits del carácter sea par o impar dependiendo de la paridad con la cual trabaja la computadora. Por ejemplo si la computadora trabaja con una paridad par, el bit de paridad para la letra A sería 0 debido a que la suma de los bits es 2 el cual es un número par. Esto es así debido a que la letra A se representa en el código ASCII como 1000001. Sumando los dígitos tenemos 1 + 0 + 0 + 0 + 0 + 0 + 1 = 2 o sea un número par. Esto implica que para representar la letra A utilizando el bit de paridad tenemos que añadir un cero. Por lo tanto la letra A se representa como 0100001 “el primer dígito es el bit de paridad”.
Si la computadora trabaja con paridad impar entonces el bit de paridad para la letra A sería 1. Esto es así debido a que la suma de los dígitos de la letra A es un número par, por lo tanto tenemos que añadir uno para que la suma de los dígitos sea un número impar. Por lo tanto la letra A se representa como 11000001 “el primer dígito es el bit de paridad”.
Ejemplo 1: Suponga una computadora que utiliza un verificador de paridad par. ¿Cuál es el código ASCII en binario para la palabra AMOR?
Solución:
Utilizando la Tabla 1 y la paridad par tenemos:
A |
M |
O |
R |
01000001 |
01001101 |
11001111 |
11010010 |
Ejemplo 2: Suponga una computadora que utiliza un verificador de paridad impar. ¿Cuál es el código ASCII en binario para la palabra FEO.
Solución:
Utilizando la Tabla 1 y la paridad impar tenemos:
F |
E |
O |
01000110 |
01000101 |
01001111 |
El bit de paridad es utilizado para detectar errores cuando un caracter es trasmitido en la computadora. Por ejemplo, si nosotros oprimimos la letra A en el teclado de computadoras este pasa por un chip (#1) que codifica en binario la letra, luego pasa por otro chip (#2) que le añade el bit de paridad al código que trae el chip anterior, después llega a la memoria principal (RAM) y vuelve a pasar por el chip (#2) donde se verifica la paridad. Por último, pasa por el primer chip (#1) donde se decodificó y vemos la letra A en la pantalla del computador (si en el chip donde se verifica la paridad existe un error hay que escribir nuevamente la letra).
En el código ASCII cualquier carácter es codificado con 8 bits incluyendo el bit de paridad. Esto implica que en el código ASCII un byte es igual a 8 bits.
Otro código muy utilizado es el código EBCDIC que es una abreviatura para Extended Binary Code Decimal Interchange Code. Este código fue desarrollado por la compañía IBM. En el código EBCDIC se utilizan 8 bits para representar cualquier carácter de información. De estos 8 bits los primeros cuatro se conocen como bit de zona y los próximos cuatro se llaman bit numéricos.
Por ejemplo la letra L se representa 11010011. Los bits de zona son 1101 y los numéricos 0011. Con este código podemos representar hasta 28 = 256 caracteres. La Tabla 2 muestra el equivalente binario, decimal y hexadecimal de los códigos EBCDIC para las letras mayúsculas del alfabeto.
Ejemplo 3: Utiliza la Tabla 2 para encontrar la representación binaria, decimal y hexadecimal para la palabra MORERA en el código EBCDIC.
Solución:
Utilizando la Tabla 2 tenemos:
Representación |
M |
O |
R |
E |
R |
A |
Binaria |
11010100 |
11010110 |
11011001 |
11000101 |
11011001 |
11000001 |
Decimal |
212 |
214 |
217 |
197 |
217 |
193 |
Hexadecimal |
D4 |
D6 |
D9 |
C5 |
D9 |
C1 |
Ejemplo 4: Suponga una computadora que utiliza un verificador de paridad par. ¿Cuál es el código EBCDIC en binario para la palabra BELLO.
Solución:
Utilizando la tabla 3.4 (Ver Apéndice) y la paridad para tenemos:
Representación |
B |
E |
L |
L |
O |
Binario |
111000010 |
011000101 |
111010011 |
111010011 |
111010110 |
Note que en el código EDCDIC cualquier carácter es codificado con 9 bits incluyendo el bit de paridad. Esto implica que en el código EBCDIC un byte es igual a 9 bits.
Los códigos estudiados anteriormente son extensiones del Código Binario Decimal (BCD, Binary Code Decimal) el cual utiliza 4 bits para representar los dígitos del 0 al 9. Con este código se representan números decimales simplemente reemplazando cada dígito decimal en bloques de 4 bits con su equivalente binario como se muestra en el siguiente ejemplo.
Ejemplo 5: Utilice el código BCD para encontrar la representación binaria del decimal 359.
Solución:
Representación |
3 |
5 |
9 |
Binario |
0011 |
0101 |
1001 |
Por lo tanto la representación BCD del número 359 es 1101011001.
Note que la representación del número 359 en el código BCD no es igual a la representación en el sistema binario del número. La representación de 359 = 1011001112.
Tabla 1
Esta tabla contiene el equivalente binario, decimal y hexadecimal de los códigos ASCII, para las letras mayúsculas del alfabeto.
Código ASCII
|
|||
Carácter |
Valor Binario |
Valor Decimal |
Valor Hexadecimal |
A |
tc \l5 "A100 0001 |
65 |
41 |
B |
100 0010 |
66 |
42 |
C |
100 0011 |
67 |
43 |
D |
100 0100 |
68 |
44 |
E |
100 0101 |
69 |
45 |
F |
100 0110 |
70 |
46 |
G |
100 0111 |
71 |
47 |
H |
100 1000 |
72 |
48 |
I |
100 1001 |
73 |
49 |
J |
100 1010 |
74 |
4A |
K |
100 1011 |
75 |
4B |
L |
100 1100 |
76 |
4C |
M |
100 1101 |
77 |
4D |
N |
100 1110 |
78 |
4E |
O |
100 1111 |
79 |
4F |
P |
101 0000 |
80 |
50 |
Q |
101 0001 |
81 |
51 |
R |
101 0010 |
82 |
52 |
S |
101 0011 |
83 |
53 |
T |
101 0100 |
84 |
54 |
U |
101 0101 |
85 |
55 |
V |
101 0110 |
86 |
56 |
W |
101 0111 |
87 |
57 |
X |
101 1000 |
88 |
58 |
Y |
101 1001 |
89 |
59 |
Z |
101 1010 |
90 |
5A |
Tabla 2
Esta tabla contiene el equivalente binario, decimal y hexadecimal de los códigos EDCDIC, para las letras mayúsculas del alfabeto.
Carácter |
CÓDIGO EBCDIC |
||
Valor Binario |
Valor Decimal |
Valor Hexadecimal |
|
A |
1100 0001 |
193 |
C1 |
B |
1100 0010 |
194 |
C2 |
C |
1100 0011 |
195 |
C3 |
D |
1100 0100 |
196 |
C4 |
E |
1100 0101 |
197 |
C5 |
F |
1100 0110 |
198 |
C6 |
G |
1100 0111 |
199 |
C7 |
H |
1100 1000 |
200 |
C8 |
I |
1100 1001 |
201 |
C9 |
J |
1101 0001 |
209 |
D1 |
K |
1101 0010 |
210 |
D2 |
L |
1101 0011 |
211 |
D3 |
M |
1101 0100 |
212 |
D4 |
N |
1101 0101 |
213 |
D5 |
O |
1101 0110 |
214 |
D6 |
P |
1101 0111 |
215 |
D7 |
Q |
1101 1000 |
216 |
D8 |
R |
1101 1001 |
217 |
D9 |
S |
1110 0010 |
226 |
E2 |
T |
1110 0011 |
227 |
E3 |
U |
1110 0100 |
228 |
E4 |
V |
1110 0101 |
229 |
E5 |
W |
1110 0110 |
230 |
E6 |
X |
1110 0111 |
231 |
E7 |
Y |
1110 1000 |
232 |
E8 |
Z |
1110 1001 |
233 |
E9 |
E-mail: mentaludix@hotmail.com