Академический Документы
Профессиональный Документы
Культура Документы
CAPITULO 1
SISTEMAS NUMERICOS Y ALGEBRA DE BOOLE
n
N = ∑
i=− p
a ib i
Para identificar la base en la cual está expresado el número, se suele colocar ésta en forma de
subíndice
Existen sistemas numéricos que no responden al orden posicional, como por ejemplo:
i) Sistema Numérico Romano: I, II, IV, V, IX, XIV, IC, MCMLXXXVIII, etc
ii) Sistema de medición de tiempos: segundo, minuto, hora, día, mes, año, etc.
i) Base 10 o decimal.
Caracteres: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9
El sistema binario, aún cuando requiere una mayor cantidad de dígitos para representar un
número, es prácticamente el único sistema utilizado en circuitos electrónicos y de comunicaciones
digitales, así como circuitos de cálculo y de control.
¿Cómo se cuenta en los distintos sistemas numéricos? Veamos el sistema mas usado, el decimal.
Como se nos acabaron los dígitos, repetimos la secuencia anteponiendo el segundo caracter (es
decir 1)
10 – 11 – 12 – 13 – 14 – 15 – 16 – 17 – 18 – 19
Volvemos a repetir la lista de dígitos del sistema numérico anteponiendo el tercer caracter (2) y así
sucesivamente
En una base b cualquiera, el máximo número posible de combinaciones con n dígitos, se puede
calcular como:
n
Número de combinaciones = b
Ejemplo: ¿Cuántas combinaciones es posible realizar con tres dígitos en las bases 2, 3, 5, 7 y 10?
3 3 3 3 3
Respuesta: Núm combinaciones = 2 3 5 7 10
= 8 27 125 343 1000
Tabla Nº 1
Combinaciones de tres bits en distintas bases
2 3 5 7 10
000 000 000 000 000
001 001 001 001 001
010 002 002 002 002
011 010 003 003 003
100 011 004 004 004
101 012 010 005 005
110 020 011 006 006
111 021 012 010 007
022 013 011 008
100 014 012 009
.... 020 013 010
220 021 014 011
221 022 015 012
222 .... 016 013
442 020 014
OPERACIONES ARITMETICAS
a) Suma de dos números en base b
S = Nb + Mb
Con
n1 n
∑ ∑
2
N b = i
a ib ...... y ....... M b = c ib i
i = − p1 i= − p 2
n
S = ∑
k = − p
d k b k
ii) a i + c i P b è d i = ai + c i – b
di+1 = a i+1 + ci+1 + 1
Ejemplos:
D3 D2 D1 D0
1 1 D0 = 2+1 = 3
0 3 4 2 (5) D1 = (4 + 3) - 5 = 2 (reserva 1)
+ 0 2 3 1 (5) D2 = (3 + 2 + 1) = 1 (reserva 1)
D 1 1 2 3 (5) D3 = 1+0+0 = 1
D3 D2 D1 D0
1 1 D0 = C+1 = D
4 A 5 C (H) D1 = (5 + E) - H = 3 (reserva 1)
+ 2 7 E 1 (H) D2 = (A + 7 + 1) - H = 2 (reserva 1)
7 2 3 D (H) D3 = (4 + 2 + 1) = 7
R = Nb - Mb
Con
n1 n2 n
Nb = ∑ a b ...... y ....... M
i = − p1
i
i
b = ∑cb
i = − p2
i
i
R = ∑
k=− p
d kb k
i) ai P ci è d i = ai - ci y no hay problemas
ii) ai < ci è se debe pedir prestado un “1” al dígito superior, lo cual representa sumar la
base como se indica:
di = (ai - ci ) + b
di+1 = (ai+1 - c i+1 ) - 1
Ejemplos:
D2 D1 D0
4 5 5 7 D0 = 5-2 = 3
- 3 6 2 7 D1 = (5 - 6) + 7 = 6 (préstamo 1)
0 6 3 D2 = (4 - 3) - 1 = 0
D2 D1 D0
2 A 9 H D0 = (9 - B) + H = E (préstamo 1)
- 1 1 B H D1 = (A - 1) - 1 = 8
1 8 E D2 = (2 - 1) = 0
9 9 9
- 6 (10 - 6) + 4
1 3
complemento a 10
del número 6 se ignora
En el sistema binario, también es posible restar utilizando la suma del complemento a dos de un
número.
9 1001
- 6 - 0110
Entonces: 1
1 0 0 1
+ 1 0 1 0
1 0 0 1 1
se ignora
6 6 6
- 9 (10 - 9) + 1
7
complemento a 10
del número 9
1 1 1 7 1 1 1
- 1 0 1 1 - 1 1 0 1 0 0
1 0 0 4 + 1
1 1 0 0
complemento a 2 del
número binario (-100)
Comprobación
Número binario 0100
complemento a 1 1011
+ 1
complemento a 2 1100
Sigue las mismas reglas que la multiplicación en base 10. Primero debemos considerar la
existencia de las tablas de multiplicar en la base de operación.
2 * 1 = 2 3 * 1 = 3 4 * 1 = 4 5 * 1 = 5
2 * 2 = 4 3 * 2 = 10 4 * 2 = 12 5 * 2 = 14
2 * 3 = 10 3 * 3 = 13 4 * 3 = 20 5 * 3 = 23
2 * 4 = 12 3 * 4 = 20 4 * 4 = 24 5 * 4 = 32
2 * 5 = 14 3 * 5 = 23 4 * 5 = 32 5 * 5 = 41
Luego entonces:
4 2 6 * 5 3 6
2 1 0
3 3 4
3 5 5 0 6
Veamos la misma multiplicación, pero en un sistema numérico posicional base 13. Primero
debemos generar las tablas de multiplicar en base 13. En general no es necesario construir todas la
tablas de multiplicar sino las que son de interés. En este caso las tablas de interés corresponden a la
tabla del 5 y a la del 3, ambas en base 13. (También es posible construir las tablas de multiplicar del 4 y
del 2 en base 13)
3 * 1 = 3 5 * 1 = 5
3 * 2 = 6 5 * 2 = A
3 * 3 = 9 5 * 3 = 12
3 * 4 = C 5 * 4 = 17
3 * 5 = 12 5 * 5 = 1C 4 2 13 * 5 3 13
3 * 6 = 15 5 * 6 = 24 C 6
3 * 7 = 18 5 * 7 = 29 1 7A
3 * 8 = 1B 5 * 8 = 31 1 8 9 6 13
3 * 9 = 21 5 * 9 = 36
3 * A = 24 5 * A = 3B
3 * B = 27 5 * B = 43
3 * C = 2A 5 * C = 48
Como en el caso anterior, la división sigue las mismas reglas que la división en el sistema decimal,
es decir, los coeficientes no pueden ser mayores que la base.
Ejemplo:
1 3 0 6 : 2 6 = 4 3 6
- 1 2
1 0
- 1 0
0
Ejemplo:
i) b1 > b 2
ii) b1 < b2
Es importante notar que en ambos casos se debe emplear la aritmética de la base mayor.
Si b1 > b 2 podemos suponer la conversión ya realizada y por lo tanto escribir la siguiente igualdad:
N b1 = a n b 2n + a n − 1b 2n − 1 + . . . . + a 2 b 22 + a 1 b 21 + a 0 b 20
(La idea es encontrar los términos ai). Si dividimos ambos lados por b2, tenemos:
N a0
= a n b 2n − 1 + a n − 1 b 2n − 2 + . . . . . + a 2 b 21 + a 1 b 20 +
b1
b2 b2
Q1 a0
De aquí se deduce que el resíduo, que corresponde a a0 es el coeficiente menos significativo del
número en base b2. Tomando el resto de los términos (Q1) y dividiendo por b2.
Q1 a1
= a n b 2n − 2 + a n −1 b 2n − 3 + . . . . . . + a 2 b 20 +
b2 b2
Qn-1 a1
Q n −1 a
= a n b 20 + n − 1
b2 b2
an-1.
Q n an
= 0 +
b2 b2
an.
7 4' 9' 2' : 8 = 9' 3' 6' : 8 = 11' 7' : 8 = 14' : 8 = 1 :8= 0
2 9 1 3 3 7 6 1
5 2 5 6 5
4 0
a0 a1 a2 a3 a4
La parte entera (a -1) del resultado de la multiplicación por b2 es el coeficiente más significativo en la
parte fraccionaria del número original. Continuando con el resto de los términos, tenemos:
Y así sucesivamente
b 2 * M 2 = a − 3 + a − 4 b 2− 1 + . . . + a − p b 2− p + 3
b2 * M p−2 = a − p + 1 + a − p b 2− 1
Hasta que
b2 * M p −1 = a−p
Es común que la cantidad de coeficientes en la base b 2 sea infinito (o demasiado grande), en ese
caso se prosigue con la operación hasta obtener la precisión deseada.
0.145 * 4
1.112 * 4 a-1 = 1
0.452 * 4 a-2 = 0 se lee así
3.132 * 4 a-3 = 3
1.012 * 4 a-4 = 1
0.052 * 4 a-5 = 0
0.332 * 4 a-6 = 0
2.121 * 4 a-7 = 2
1.252 a-8 = 1
En este caso parece ser más fácil el proceso, ya que b1 pertenece a la aritmética de b2. Sin
embargo, esto es más fácil si b2 es decimal.
−1 1
5 * 61 + 4 * 60 + 3 * 6 = 30 + 4 + 3 * = 3 4 ,5 ( 1 0 )
6
1011 ⇒ 1 * 2 3
+ 0*2 2
+ 1* 21 + 1* 2 0
2 3
3 = 2 3 * 2 3 * 2 3 = 113 * 2 3 = 22 3
1011 ⇒ 22 + 0 + 2 + 1 = 102 3
−1 −2 −3 1 1
0 ,0 1 1 ⇒ 0 * 2 + 1* 2 + 1* 2 = 0 + +
11 22
1 0 0 : 1 1 = 0, 0 2 0 2
- 2 2
1 0 0
- 2 2
1
1 0 0 : 2 2 = 0, 0 1 0 1
- 2 2
1 0 0
- 2 2
1
0. 0 2 0 2
+ 0. 0 1 0 1
0. 1 0 1 0
Finalmente el resultado es : 1 0 1 1, 0 1 1 2 è 1 0 2 , 1 0 1 0 3
1 1
0 ,0 1 1 2 ⇒ 0 + + = 0 ,3 7 5 (1 0 )
4 8
y 0,375 è X 3
0,375 *3
1,125 *3
0,375 *3
1,125 *3
0,375
M b2 = c n b 2n + c n − 1 b 2n − 1 + c n − 2 b 2n − 2 + ....+ c k b 2k + c k − 1b 2k − 1 + ... + c 0
Como ambos números son iguales, entonces ambas series de potencias son iguales.
k
Si en la serie de Nb1, se factoriza por b1 (para igualar coeficientes con base elevado a potencias
iguales) se tiene:
c 0 = a 0 + a 1 b 1 + a 2 b 12 + a 3 b 13 + ....+ a k − 1 b 1k − 1
c 1 = a k + a k + 1 b 1 + a k + 2 b 12 + a k + 3 b 13 + ...+ a 2 k − 1 b 1k − 1
c 2 = a 2 k + a 2 k + 1 b 1 + a 2 k + 2 b 12 + a 2 k + 3 b 13 + ...+ a 3 k − 1 b 1k − 1
Lo cual significa que k términos del número expresado en base b 1, se reemplazan por un término
expresado en base b2.
1 2 0 1 2 , 2 1
0 * 31 + 1 * 3 0 2 * 31 + 0 * 30 1 * 31 + 2 * 30 2 * 31 + 1 * 3 0
luego, X9 = 165,79
Alfanuméricos
Códigos Ponderados
Numéricos
No Ponderados
detectores de error
dependiendo de
su capacidad
correctores de error
CODIGOS NUMERICOS
Los códigos ponderados son aquellos en que a cada bit se le asigna un peso o valor
determinado, con lo cual el valor numérico de la combinación es
4
N = ∑ a i * pi
i =0
Donde pi = peso del bit i,
ai = coeficiente binario del bit i.
i
En el caso del código binario natural pi = 2
n
N= ∑a 2
i =− p
i
i
Con ai = [ 0 , 1 ]
Es un código “ponderado”, ya que el valor de los coeficientes depende de la posición que tengan
en el número.
El código binario natural es la representación normal de los dígitos decimales en el sistema binario,
es decir:
En este código, los dígitos decimales (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) se representan con una palabra de
4 bits.
Para representar los dígitos decimales, deben existir al menos diez combinaciones en el código
4
binario. Con 4 dígitos podemos tener 2 = 16 combinaciones posibles, de las cuales sólo usaremos 10,
perdiendo las 6 restantes.
Esto hace que en el Código BCD se necesiten más bits que en el código binario natural para
representar cifras mayores que 9.
3. CODIGO AIKEN
La siguiente tabla muestra los dos códigos ponderados más importantes: el BCD y el Aiken.
BCD AIKEN
Dígito P3 P2 P1 P0 P3 P2 P1 P0
Decimal 8 4 2 1 2 4 2 1
0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1
2 0 0 1 0 0 0 1 0
3 0 0 1 1 0 0 1 1
4 0 1 0 0 0 1 0 0
5 0 1 0 1 1 0 1 1
6 0 1 1 0 1 1 0 0
7 0 1 1 1 1 1 0 1
8 1 0 0 0 1 1 1 0
9 1 0 0 1 1 1 1 1
Otra forma de buscar el complemento es buscar el número solicitado (3), contando desde la base
de la tabla hacia arriba.
CODIGO GRAY
Es el código binario cíclico más conocido. Se le llama también código reflejado. El código Gray se
puede construir considerando las siguientes reglas:
n-1 n-1
b) Las 2 combinaciones finales de los primeros n-1 bits son el reflejo de las 2 primeras.
Desarrollo.
1
Para n = 1 bit, el número máximo de combinaciones es 2 = 2, luego sólo es posible determinar la
regla a)
bit 1
0
1
2
Para n = 2 bits, el número máximo de combinaciones es 2 = 4, entonces el bit n (es decir el bit 2)
será
2-1 1
0 para las 2 = 2 = 2 primeras combinaciones, y
bit 2 bit 1
0
0
1
1
De la construcción del código Gray para los n-1 primeros bits, (en este caso 2-1 = 1 bit), se conoce
que el bit 1 es 0 para la primera combinación y 1 para la segunda, entonces,
bit 2 bit 1
0 0
0 1
1
1
n-1 2-1 1
La regla b) del código señala que las 2 (2 = 2 = 2) combinaciones finales de los primeros n-1
n-1 2-1 1
(2-1 = 1) bits son el reflejo de las 2 (2 = 2 = 2) primeras combinaciones, por lo tanto, el código gray
para 2 bits es:
bit 2 bit 1
0 0
0 1
1 1
1 0
Para n = 3 bits, se toma como base conocida la estructura del código de 2 bits y para n = 4 bits, se
conoce la estructura del código de tres bits, entonces:
Códigos no ponderados: son aquellos que cada bit no tiene asignado un peso. Uno de los más
utilizados es el código “exceso tres”. En este código cada dígito se codifica mediante la combinación
correspondiente a N + 3 en el código binario decimal.
Dígito BCD
Decimal exceso tres
0 0 0 1 1
1 0 1 0 0
2 0 1 0 1
3 0 1 1 0
4 0 1 1 1
5 1 0 0 0
6 1 0 0 1
7 1 0 1 0
8 1 0 1 1
9 1 1 0 0
7 2 5, 8
BCD natural 0111 0010 0101, 1000
BCD Aiken 1101 0010 1011, 1110
BCD Exc-3 1010 0101 1000, 1011
CODIGOS ALFANUMERICOS
Son códigos en los cuales se representan dígitos alfabéticos, dígitos numéricos y signos
especiales.
El código ASCII (American Standard Code for Information Interchange) es el código alfanumérico
de mayor uso.
Otro código alfanumérico es el código EBCDIC (Extended Binary Coded Decimal Interchange
Code)
Cuando en un código binario se utilizan todas las combinaciones posibles de sus bits, es imposible
detectar la presencia de errores, porque una combinación del código se transformará en otra que también
pertenece al mismo código.
Por lo tanto, una detección de errores se utilizan códigos que no usan todas las combinaciones
posibles. Un método para detectar errores es agregar al código de datos un bit de paridad (par o impar,
odd or even)
A A
ptor
nsmi
B B
C C
ce
Tra
Re
D D
Generad. Detector
bit de Alarma
paridad error
Figura 1.1
Supongamos que se transmite una palabra de cuatro bits A, B, C, D. Con cuatro bits el máximo
número de combinaciones es 16.
El generador de bit de paridad par agrega al dato (de cuatro bits) un quinto bit, el que será 1 o 0 de
forma tal que el número de 1’s en la palabra de cinco bits es par, esto es:
- si en el dato existe un número par de 1’s, el quinto bit (salida del generador de bit de paridad)
es 0,
- si en el dato existe un número impar de 1’s, la salida del generador de bit de paridad es 1.
El detector de error examina el bit de paridad y chequea las líneas de datos. Si encuentra un error
lo denuncia a través de la alarma.
Línea de transmisión
sor
D7 D7 D7
ctor
ptor
rror
nsmi
D6 D6 D6
Corre
D5 D5 D5
ce
dee
Tra
Re
D3 D3 D3
Generad. Detector
D7 D6 D5 -> P4 bit pari- D7 D6 D5 P4 -> E1 de
dad par P4 error 1 E1
Generad. Detector
D7 D6 D3 -> P2 bit pari- D7 D6 D3 P2 -> E2
de
dad par P2 E2
error 2
Generad. Detector
D7 D5 D3 -> P1 bit pari- D7 D5 D3 P1 -> E3 de
dad par P1 error 3 E3
Generadores
Figura 1.2 bit paridad par
Supongamos que deseamos transmitir un dato de cuatro bits, utilizando el código Hamming. De
acuerdo con el circuito anterior, se generan tres bits de paridad par adicionales, denominados P1, P2 y
P4, calculados según se indica en el circuito anterior.
D 7D6D5 à P4
D 7D6D3 à P2
D 7D5D3 à P1
D 7D6D5P4 à E1
D 7D6D3P2 à E2
D 7D5D3P1 à E3
Si deseamos transmitir el dato de cuatro bits 1010, entonces aplicando el código Hammings se
generan los siguientes bits de paridad par.
D 7D6D5 à P4 101à0
D 7D6D3 à P2 100à1
D 7D5D3 à P1 110à0
D 7D6D5P4D3P2P1 1010010
D 7D6D5P4 à E1 1010à0
D 7D6D3P2 à E2 1001à0
D 7D5D3P1 à E3 1100à0
Se genera una entrada E1E2 E3 = 0 0 0 al circuito corrector de error, luego no hay corrección (la
palabra recibida no contienen errores)
D 7D6D5P4 à E1 1000à1
D 7D6D3P2 à E2 1001à0
D 7D5D3P1 à E3 1000à1
Se genera una entrada E1E2 E3 = 1 0 1 al circuito corrector de error. La combinación E1E2 E3 indica
la posición, en términos binarios, del error.
En este caso, el error está en la ubicación 1 0 12 è 510 è D 5, luego el circuito corrector de error
toma el dato D5 y obtiene su complemento, con lo cual es corregido el error.
D 7D6D5P4 à E1 1010à0
D 7D6D3P2 à E2 1000à1
D 7D5D3P1 à E3 1100à0
D 7D6D5P4 à E1 1110à1
D 7D6D3P2 à E2 1101à1
D 7D5D3P1 à E3 1101à1
Se genera una entrada E1E2 E3 = 1 1 1 al circuito corrector de error, lo cual indica un error en el bit
de datos D7, lo cual no es correcto, ya que son dos los errores. Esta versión del código corrector de
errores Hamming detecta sólo un error.