Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 1. Códigos y Sistemas Numéricos
Tema 1. Códigos y Sistemas Numéricos
Temas y Subtemas:
Referencias bibliográficas.
Actividades.
Sus características son que pueden variar a través de cualquier intervalo continuo de
valores.
Fig. 1.3.2 Diagrama a bloques de un sistema digital de precisión para control de temperatura.
En la tecnología digital se utilizan muchos sistemas numéricos. Los más comunes son los
siguientes:
➢ Binario (2)
➢ Octal (8)
➢ Decimal (10)
➢ Hexadecimal (16)
Evidentemente el sistema decimal es el más conocido, ya que es el que utilizamos a diario.
Analizaremos las características para comprender los demás sistemas numéricos.
Después de este repaso del sistema decimal, aplicamos los mismos conceptos para los demás
sistemas numéricos.
1.4.2 Conversiones binarias, decimales, octales y hexadecimales.
1 0 1 1 . 1 0 1
MSB LSB
BINARIO
DECIMAL 23 = 8 22 = 4 21 = 2 20 = 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
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1
… 84 83 82 81 80
4096 512 64 8 1
Ahora veamos un ejemplo de conversión del sistema octal al decimal considerando los
valores posicionales anteriores
0 10 20 30 40
1 11 21 31 .
2 12 22 32 .
3 13 23 33 .
4 14 24 34 .
5 15 25 35 .
6 16 26 36 .
7 17 27 37 .
Sistema hexadecimal
Los números hexadecimales se utilizan a menudo en un sistema digital como una manera
abreviada de representar cadenas de bits. Al trabajar con las computadoras, es muy común
Valor posicional
… 164
16 3 2
16 1
16 16 0
0 10 20 30 40
1 11 21 . .
2 12 22 . .
3 13 23 . .
4 14 24
5 15 25
6 16 26
7 17 27
8 18 28
9 19 29
A 1A 2A
B 1B 2B
C 1C 2C
D 1D 2D
E 1E 2E
F 1F 2F
Ya que analizamos las conversiones de las diferentes bases al sistema decimal, veremos
las demás conversiones de acuerdo a la siguiente tabla:
Binaria ….. ✓
Octal …… ✓
Decimal ……
Hexadecimal ✓ ……
Veamos ahora las conversiones de Binario a Octal y viceversa, las cuáles son las
conversiones que resultan con mucha facilidad.
Conversión de binario a octal:
El procedimiento es muy sencillo, sólo dividimos en número binario en grupos de 3 bits a
partir del LSB y asignamos su equivalente número en decimal a cada grupo.
Ejemplo:
100110101012 = 23258
Conversión de octal a binario:
Realizamos la operación inversa a la anterior. A partir del número expresado en octal, a
cada dígito lo representamos con 3 bits.
Ejemplo:
74218 = 1111000100012
Bases B O D H
B … ✓ ✓
O ✓ … ✓
D ..
H ✓ ..
Bases B O D H
B … ✓ ✓ ✓
O ✓ … ✓
D ..
H ✓ ✓ ..
Toca el turno de convertir de decimal a las otras bases que estamos manejando:
Conversión de decimal a Binario:
Para este caso aplicamos divisiones sucesivas entre la base a la que deseamos convertir,
en es este ocasión es 2.
Ejemplo: convertir 123910 a binario
19 0
El resultado es el siguiente, considerando
9 1 que el último número de la columna del
residuo es el MSB.
4 1
2 0
1 0 123910 = 100110101112
1
1239 Residuo
El procedimiento a utilizar es el mismo que
77 7 en los dos casos anteriores. Dando como
resultado lo siguiente:
4 D
4 123910 = 4D716
Notamos que cuando dividimos el 77 entre 16, el residuo es 13, pero debemos representar
el 13 en hexadecimal (D) de acuerdo al conteo que analizamos en sección anterior referente
al sistema hexadecimal.
Hasta este punto llevamos las siguientes conversiones entre las bases:
Bases B O D H
B … ✓ ✓ ✓
O ✓ … ✓
D ✓ ✓ .. ✓
H ✓ ✓ ..
Para finalizar las conversiones realizaremos las conversiones de octal a hexa y viceversa.
Para esta conversión hacemos un paso intermedio antes de realizar la conversión completa
y se trata de convertir nuestro número octal en binario y posteriormente realizar grupos de
4 bits para representarlos en hexadecimal.
Ejemplo: Convertir el 74568 a hexadecimal.
Expresamos el valor en binario: 111 100 101 1102
Ahora realizamos grupos de 4 bits de LSB a MSB: 1111001011102
Finalmente obtenemos el equivalente hexadecimal: F2E16
74568 = F2E16
Con esto finalizamos todas las conversiones entres las 4 bases estudiadas.
Bases B O D H
B … ✓ ✓ ✓
O ✓ … ✓ ✓
D ✓ ✓ .. ✓
H ✓ ✓ ✓ ..
Los bits de magnitud son el equivalente binario real del valor decimal que se está
representando. A éste se le conoce como sistema de signo-magnitud para representar
números binarios con signo. Aunque el sistema de signo-magnitud es simple, las
calculadoras y computadoras no lo utilizan de manera usual porque la implementación del
circuito es más compleja que en otros sistemas. El sistema más común que se utiliza para
representar números binarios con signo es el sistema de complemento a 2. Veremos
primeramente de que se trata el complemento a 1 y posteriormente el complemento a 2.
Forma de complemento a 1:
El complemento a 1 de un número binario se obtiene al cambiar cada 0 por un 1 y cada 1
por un 0. Esto quiere decir que se cambia cada uno de los bits en el número por su
complemento. Veamos el siguiente ejemplo:
Forma de complemento a 2:
El complemento a 2 de un número binario se forma al tomar el complemento a 1 de ése
número y sumarle 1 a la posición LSB. Ejemplo:
101101 equivalente binario de 45
010010 complemento a 1 del número anterior
+ 1 se le suma 1 para formar el complemento a 2
010011 complemento a 2 del número binario original
Fig. 1.4.3.2 Representación de número binario con bit de signo utilizando complemento a 2
El sistema de complemento a 2 se utiliza para representar números con signo ya que, como
veremos más adelante, nos permite realizar la operación de la resta, a partir de una
operación de suma.
Esto es importante ya que significa que una computadora digital puede utilizar los mismos
circuitos tanto para sumar como para restar, lo cual redunda en un ahorro en el hardware.
Suma Binaria:
La suma de dos números binarios se realiza exactamente de la misma forma que la suma
de números decimales. Resultando ser más sencilla ya que sólo hay dos valores que
analizar. Recordemos un caso de suma decimal antes:
Acarreo 1 1 0
S1 5 4 6
S2 + 7 9 2
Suma 1 3 3 8
Acarreo 1 1 1 1
S1 1 1 0 1 (13)
S2 + 1 0 1 1 (11)
Suma 1 1 0 0 0 (24)
Suma Hexadecimal:
Resta Binaria:
Minuendo 1 1 0 0 +12
Sustraendo - 0 1 0 1 +5
Minuendo 1 1 0 0 +12
Sustraendo(CA2) + 1 0 1 1 -5
Resta 1 0 1 1 1 +7
Minuendo 0 1 0 1 +5
Sustraendo - 1 1 0 0 +12
Minuendo 0 1 0 1 +5
Sustraendo(CA2) + 0 1 0 0 -12
Resta 1 1 0 0 1 -7
Resta Hexadecimal:
Se sigue la misma lógica que la resta binaria, sólo que aquí utilizamos el complemento a
16, resultando el procedimiento siguiente:
1. Negar el sustraendo. Esto cambiará el sustraendo por su valor equivalente del signo
opuesto (complemento a 16).
2. Sumar éste al minuendo. El resultado de esta suma representará la diferencia entre
el sustraendo y el minuendo.
Minuendo 3 A 1
Sustraendo - 2 F 8
Minuendo 3 A 1
Para obtener el complemento a
Sustraendo(CA16) + D 0 8 16 del sustraendo, completamos
Resta 1 0 A 9 el 8 a 16 y el resto de los dígitos
a 15.
Se descarta Resultado
Multiplicación Binaria:
Para el caso de la multiplicación binaria utilizamos la misma regla que para la multiplicación
decimal, sólo que resulta más simple debido a que sólo manejamos dos dígitos. Veamos el
siguiente ejemplo:
Multiplicación Hexadecimal:
Nos basamos en la misma regla que las anteriores bases. Veamos el siguiente ejemplo:
División binaria:
1 0 1 1 1 0
1 0 0 1 0 1 1 1 0 1 1
0 0 1 1 1
0 1 1 0
0 1 0 1
0 0 1 1
En este caso el divisor es 4 (100) y tomamos los 3 bits más significativos del dividendo que
sería 5 (101), esto es que cabe una vez (cociente) y sobra 1 (residuo). El procedimiento se
figue repitiendo hasta que terminemos con todos los bits del dividendo.
El resto de las operaciones en otras bases no abordadas siguen la misma regla. Ya queda
a criterio del estudiante el realizarlas.
Vimos que cualquier número decimal puede representarse mediante un número binario
equivalente. El grupo de 1s y 0s en el número binario puede considerarse como un código
que representa el número decimal. Cuando un número decimal se representa por su
número binario equivalente, le llamamos código binario directo.
Hemos visto que las conversiones entre decimal y binario pueden volverse extensas y
complicadas cuando se manejan números grandes. Por esta razón, en ciertas situaciones
se utiliza un medio para codificar números decimales que combina algunas características
tanto del sistema decimal como del sistema binario.
8 7 4 (Decimal)
1000 0111 0100 (BCD)
9 4 3 (Decimal)
1001 0100 0011 (BCD)
Realizamos grupos de 4 bits a partir del bit menos significativo y asignamos su equivalente
decimal.
http://arantxa.ii.uam.es/~mtp1/codigos_ASCII.pdf
CÓDIGO GRAY
El código binario reflejado o código Gray, nombrado así en honor del investigador Frank
Gray, es un sistema de numeración binario en el que dos valores sucesivos difieren
solamente en uno de sus dígitos.
Los sistemas digitales operan a velocidades muy elevadas y responden a los cambios que
se producen en las entradas digitales. De la misma forma en la vida real, cuando varias
condiciones de entrada están cambiando al mismo
tiempo la situación puede malinterpretarse, con lo cual B2 B1 B0 G2 G1 G0
se puede llegar a producir una reacción errónea.
0 0 0 0 0 0
Para reducir la probabilidad de que un circuito digital
malinterprete una entrada cambiante, se desarrolló el 0 0 1 0 0 1
código Gray como una manera de representar una 0 1 0 0 1 1
secuencia de números. El aspecto único del código
Gray es que, entre dos números sucesivos en la 0 1 1 0 1 0
secuencia sólo un bit cambia.
1 0 0 1 1 0
Para convertir de binario a Gray sólo hay que empezar
en el bit más significativo y usarlo como el MSB de 1 0 1 1 1 1
Gray. Después se compara el MSB binario con el
1 1 0 1 0 1
siguiente bit binario (B1). Si son iguales, entonces G1
= 0; si son distintos, entonces G1 = 1. Para encontrar 1 1 1 1 0 0
G0 se compara B1 con B0.
La aplicación más común del código gray es en los codificadores de posición de eje. Estos
dispositivos producen un valor binario que representa la posición de un eje mecánico
giratorio. Un codificador de eje práctico utiliza mucho más de tres bits y divide la rotación
en mucho más de ocho segmentos, por lo que puede detectar incrementos de rotación
mucho más pequeños.
En algunas ocasiones, el ruido es tan grande en amplitud que altera el nivel lógico de la
señal, como se ve en el punto x. Cuando esto ocurre, el recpetor puede interpretar en forma
incorrecta ese bit como un 1 lógico, que no corresponde con lo que el transmisor ha enviado.
Para solucionar este tipo de errores se utiliza el método de paridad como técnica de
detección de errores.
Bit de paridad: es un bit que se agrega al grupo de bits del código que se está transfiriendo
de un lugar a otro. El bit de paridad se hace 0 o 1, dependiendo del número de 1s que
contenga el grupo de bits del código. Como se muestra en la figura 1.6.2.
Paridad Par: el valor del bit agregado se elige de manera que el número total de 1s en el
grupo de bits del código sea par. Indicado en la figura 1.6.2.
Si el grupo de bits del código contiene un número par de 1s, el bit de paridad recibe el valor
de 0. Se muestra en la figura 1.6.3
01001110
bit de paridad agregado
Fig. 1.6.3 Bit de paridad par agregado a cadena de datos
Paridad Impar: el valor del bit agregado se elige de manera que el número total de 1s en
el grupo de bits del código sea impar. Figura 1.6.4
11000010
bit de paridad agregado
Fig. 1.6.4 Bit de paridad impar agregado a cadena de datos
Si el grupo de bits del código contiene un número impar de 1s, el bit de paridad recibe el
valor de 0. Figura 1.6.5
01001010
01001010
bit de paridad agregado
Fig. 1.6.5 Bit de paridad impar agregado a cadena de datos
REFERENCIA BIBLIOGRÁFICAS:
Tocci, R., Widner, N., & Moss, G. (2010). Sistemas Digitales, principios y aplicaciones. México:
Pearson-Prentice Hall.
ACTIVIDADES:
7451
1025
DEF5
1101101010001