CODIGOS BINARIOS Un código es una representación de ciertos elementos a través de la asignación a cada uno de ellos de una combinación determinada de símbolos (llamada palabra (word) del código), elegidos dentro de un juego predeterminado de símbolos (denominado alfabeto del código). En los códigos binarios el alfabeto del código son los dígitos binarios cero y uno. El código binario más utilizado es el binario natural que se desprende del sistema de numeración binario para una cantidad “n”de bits previamente determinado. Un código binario de 3 bits nos permitirá representar hasta 8 (23) combinaciones diferentes. En general un código binario de “n” bits nos permitirá representar hasta 2n elementos distintos. El código binario natural para n = 2, 3 y 4 será: Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
n =2 00 01 10 11
n=3 000 001 010 011 100 101 110 111
n =4 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
CÓDIGOS BINARIOS CÍCLICOS Y CONTINUOS Un código binario es continuo si las combinaciones correspondientes a números decimales consecutivos son adyacentes , es decir difieren sólo en un bit. Un código binario es cíclico si la última combinación es adyacente a la primera,. El código binario cíclico y continuo de mayor difusión es el código Gray o reflejado. Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
n =2 00 01 11 10
n=3 000 001 011 010 110 111 101 100
n =4 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000
CONVERSIÓN DE UN NÚMERO EN CÓDIGO BINARIO NATURAL A GRAY Para convertir una palabra en código Binario natural a código Gray, se obtiene cada bit Gray de acyerdo q la siguiente expresión. (procediendo de derecha a izquierda) Gi = B i ⊕ B i+1 Es decir, cada dígito Gray (Gn) se obtiene haciendo la operación XOR entre el binario correspondiente a la posición (Bn) y el binario que se encuentra a la izquierda de este. El siguiente ejemplo corresponde a un código de n = 7 bits. B7 B6 B5 B4 B3 B2 B1 B0 0
1
0
0
0
1
1
1
1 G6
1 G5
0 G4
0 G3
1 G2
0 G1
0 G0
Binario Nat. Gray
Se convirtió el binario 1000111 al Gray 1100100 CONVERSIÓN DE UN NÚMERO EN CÓDIGO GRAY A BINARIO NATURAL Para realizar la conversión en sentido contrario, de Gray a Binario Natural, se utiliza la siguiente expresión (procediendo de izquierda a derecha): B i = G i ⊕ B i+1 Gray Binario Nat.
1 0
1
1
0
0
0
1
0
0
0
0
1
1
1
Se convirtió el binario Gray 1100100 al Binario Natural 1000111 CÓDIGOS ALFANUMÉRICOS El código internacional alfanumérico es el ASCII (American Standard Code for Information Interchange). Utiliza siete (b6 á b0) es decir permite codificar hasta 128 caracteres distintos (27). Las últimas seis columnas corresponden a caracteres de texto, entre ellas el espacio en blanco (SP) y el carácter de borrado (DEL). Las columnas 1 y 2 contienen órdenes que afectan a la impresión o controlan el traspaso de información. El código ASCII extendido utiliza ocho bits. b6 b 5 b4 b3 b2 b1 b0 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
000
001 010 011 100 101 110 111
NUL SOH STX ETX EOT ENQ ACQ BEL BS HT LF VT FF CR SO SI
DLE SP DC! ! DC2 “ DC3 # DC4 $ NAK % SYN & ETB ‘ CAN ( EM ) SUB * ESC + FS , GS RS . US /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~ DEL
Ejemplos: G= a= 7=
b6 b5 b4 b3 b2 b1 b0 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1
CÓDIGOS PARA NÚMEROS Existen diversos tipos de códigos binarios para representar números, y el uso de cada uno de ellos dependerá del campo numérico que se quiera representar. Es así que existen códigos para representar: • • • •
Magnitudes binarias (Naturales incluido el cero) Enteros binarios (Enteros positivos y negativos) Reales binarios. (No los estudiaremos en este curso) Decimales codificados en Binario. (Códigos BCD)
1) CÓDIGO PARA MAGNITUDES BINARIAS La codificación de magnitudes binarias se hace normalmente en la forma natural, sólo que por tratarse de un código todas las magnitudes se representan con el mismo número de bits. Por lo tanto en un formato de n = 8 bits la magnitud binaria 12 se representará como 00001100. 2) CÓDIGOS PARA NÚMEROS ENTEROS BINARIOS (Positivos y Negativos) Para representar números enteros binarios existen varios códigos: • • •
Signo y Magnitud (SyM) Complemento á 1 (Cá1) Complemento á 2 (Cá2)
2a) CODIFICACIÓN EN SIGNO Y MAGNITUD (SyM) En esta forma de codificación se reserva el bit más significativo para representar el signo de dicho número y los restantes n-1 bits para representar su magnitud. Se utiliza el cero para el signo positivo y el uno para el negativo.
Ejemplo: En formato n = 4 bits
+6 0110 -6 1110 +12 No se puede representar en formato n = 4 bits porque para representar la magnitud se requieren 4 bits y no queda bit disponible para el signo. El decimal cero tiene doble representación 0000 y 1000 (n = 4 bits). Por lo tanto se podrá representar desde –2n-1 +1 hasta +2n-1 –1.Es decir con 4 bits podremos representar desde –7 (1111) hasta +7 (0111) 2b) CODIFICACIÓN EN COMPLEMENTO Á 1 (Cá1) En esta codificación los números positivos se representan por su magnitud y los negativos por el complemento a uno de su magnitud. El complemento a uno de una magnitud binaria se obtiene invirtiendo los unos por ceros y viceversa
Ejemplo: En formato n = 4 bits
+6 -6
0110 1001
El decimal cero tiene doble representación 0000 y 1111 (n = 4 bits). Por lo tanto se podrá representar desde – 2n-1 +1 hasta +2n-1 –1.Es decir con 4 bits podremos representar desde –7 (1000) hasta +7 (0111) Si bien no se reserva un bit para representar el signo vemos que si el número es negativo el bit más significativo es “1” y si el número es positivo el bit más significativo es “0”. 2c) CODIFICACIÓN EN COMPLEMENTO Á 2 (Cá2) Esta codificación es similar a la de Cá1. Los números positivos se representan por su magnitud, y los negativos por el complemento a dos de su magnitud. El complemento a dos de una magnitud se obtiene sumándole uno al complemento a uno. Ejemplo: Obtener el Cá2 de 0110
a) Se obtiene el Cá1
1001 +
b) Se le suma 1 al Cá1 0001 c) El Cá2 de 0110 es .................. 1010 Otra forma de obtener el Cá2 es analizar los bits de la magnitud a partir del menos significativo. Todos los bits encontrados hasta el primer uno tienen el mismo valor en la magnitud y en su complemento. Los bits encontrados más allá del primer uno están en el complemento invertidos con relación a la magnitud. Ejemplo: Obtener el Cá2 de 0110 ................................. 1010 Obtener el Cá2 de +4 (con n = 8 bits) (00000100).......................11111100 Entonces : En formato n = 4
+6 -6
0110 1010
El decimal cero se representa únicamente por 0000 (n = 4) y se podrá representar desde -2n-1 hasta +2n-1+1. Es decir con 4 bits se podrá representar desde –8 (1000) hasta +7 (0111). Igual que en el convenio de complemento a 1, si bien no se reserva un bit para representar el signo vemos que si el número es negativo el bit más significativo es “1” y si el número es positivo el bit más significativo es “0”. EJEMPLOS DE REPRESENTACIÓN DE NÚMEROS ENTEROS EN LOS DISTINTOS CÓDIGOS a) Indicar qué número decimal representan los siguientes números binarios, si el sistema trabaja con n = 1 byte y almacena los negativos como: a) SyM b) Cá1 c) Cá2
Binario 111111 10100100 1110110 1111 0011011010 11111111
SyM +63 -36 +118 +15 -90 -127
Cá1 +63 -91 +118 +15 -47 0
Cá2 +63 -92 +118 +15 -48 -1
b) Representar en formato 1 byte en SyM , Cá1 y Cá2 los siguientes números decimales.
Decimal +39 -100 -128 +4 -4 -60
SyM 00100111 11100100 No se puede 00000100 10000100 10111100
Cá1 00100111 10011011 No se puede 00000100 11111011 11000011
Cá2 00100111 10011100 10000000 00000100 11111100 11000100
3) CÓDIGOS BCD (DECIMAL CODIFICADO EN BINARIO) La información procesada por cualquier sistema digital finalmente se debe convertir a sistema decimal, para poder interpretarla con mayor facilidad. Esta es la principal razón de la existencia de los códigos BCD. Estos códigos se basan en representar por separado en un cierto código binario a los diferentes dígitos que componen número decimal. Por lo tanto se utilizarán 4 bits BCD para representar cada dígito decimal. Los códigos BCD más utilizados son: • • • • •
BCD Natural BCD Aiken BCD Exceso 3 (XCS 3) BCD Gray BCD 7 Segmentos
3a) BCD NATURAL Se forma con las diez primeras posiciones del binario natural. Por lo tanto es un código pesado o posicional de peso 8421. BCD Nat. Decimal 8 4 2 1 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1
Ejemplo: Convertir el número 37610 á BCD Natural: 001101110110 3b) BCD AIKEN También es un código pesado de peso 2421, pero además es autocomplementado, porque complementando el “0” se obtiene el “9”, complementando el “1” se obtiene el “8” y así sucesivamente. BCD AIKEN Decimal 0 1 2 3 4 5 6 7
2
4
2
1
0 0 0 0 0 1 1 1
0 0 0 0 1 0 1 1
0 0 1 1 0 1 0 0
0 1 0 1 0 1 0 1
8 9
1 1
1 1
1 1
0 1
Ejemplo: Convertir el número 37610 á BCD Aiken: 001111011100 3c) BCD EXCESO 3 Este código es no pesado pero sí autocomplementado. Cada número decimal se obtiene sumándole tres a la combinación correspondiente al binario natural
Decimal
BCD XCS 3
0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 1 1 1 1 1
0 1 1 1 1 0 0 0 0 1
1 0 0 1 1 0 0 1 1 0
1 0 1 0 1 0 1 0 1 0
Ejemplo: Convertir el número 37610 á BCD XCS 3: 011010101001 3d) BCD GRAY Se forma con las diez primeras combinaciones del código Gray. No es pesado ni autocomplementado. Es continuo, entre una combinación y la siguiente hay sólo un bit de diferencia. Decimal
BCD Gray
0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 1 1
0 0 0 0 1 1 1 1 1 1
0 0 1 1 1 1 0 0 0 0
0 1 1 0 0 1 1 0 0 1
Ejemplo: Convertir el número 37610 á BCD Gray: 001001000101 3e) CODIGO 7 SEGMENTOS Este código tiene una aplicación muy específica y es la vinculada a los exhibidores de 7 segmentos (displays) Con la que habitualmente se muestran los dígitos decimales en relojes calculadoras, instrumentos, etc. a f
g
e
b c
d
Decimal 0 1 2 3 4 5 6 7 8 9
a 1 0 1 1 0 1 X 1 1 1
b 1 1 1 1 1 0 0 1 1 1
c 1 1 0 1 1 1 1 1 1 1
d 1 0 1 1 0 1 1 0 1 X
e 1 0 1 0 0 0 1 0 1 0
f 1 0 0 0 1 1 1 X 1 1
g 0 0 1 1 1 1 1 0 1 1
y
y
y
Estos exhibidores de 7 segmentos se conectan a través de circuitos de cuatro entradas (BCD) y siete salidas que convierten la información BCD á 7 segmentos