SISTEMAS NUMERICOS
2007
Sistemas Digitales
1
SISTEMAS NUMERICOS Conjunto ordenado de símbolos llamados “dígitos”, con relaciones definidas para operaciones de : Suma , Resta, Multiplicación y División La base (r) del sistema representa el número total de dígitos permitidos, por ejemplo: r=2 Binario
dígitos: 0,1
r=10 Decimal
dígitos: 0,1,2,3,4,5,6,7,8,9
r=8 Octal
dígitos: 0,1,2,3,4,5,6,7
r=16 Hexadecimal dígitos:0,1,2,3,4,5,6,7,8,9 Conceptos de distributividad, conmutatividad y asociatividad se usan en todos los sistemas Sistemas Digitales
A,B,C,D,E,F 2
NOTACION POSICIONAL En general, un número positivo puede escribirse como: Ejemplos N= (an-1….a1a0a-1a-2….a-m)r (123.45)10 Donde:
(1001.11)2
.= punto decimal
(763.12)8
r= base o decimal
(3A.2F)16
n= número de dígitos enteros positivos m= número de dígitos enteros negativos an-1= dígito más significativo (MSD) a-m= dígito menos significativo (LSD) Sistemas Digitales
3
NOTACION POLINOMIAL
N=
n −1
∑a r
i =− m
i
i
Ejemplos (123.45)10 = 1*102+2*101+3*100+4*10-1+5*10-2 (1001.11)2 = 1*23+0*22+0*21+1*20+1*2-1+1*2-2 (763.12)8 = 7*82+6*81+3*80+1*8-1+2*8-2 (3A.2F)16 = 3*161+A*160+2*16-1+F*16-2 Donde: A=10, B=11, C=12, D=13, E=14 y F=15 Sistemas Digitales
4
Decimal
Binario
Octal
Hexadecimal
0
0
0
0
1
1
1
1
2
10
2
2
3
11
3
3
4
100
4
4
5
101
5
5
de
6
110
6
6
7
111
7
7
uso comĂşn
8
1000
10
8
9
1001
11
9
10
1010
12
A
11
1011
13
B
12
1100
14
C
13
1101
15
D
14
1110
16
E
15
1111
17
F
Sistemas
Sistemas Digitales
5
Conversión de un sistema de Base “ r ” a Base “10” Utilizando la notación polinomial: Ejemplos: (10100)2 = 1*24+0*23+1*22+0*21+0*20 =(20)10
(AF3.15)16 = 10*162+15*161+3*160+1*16-1 +5*16-2 = (2803.08203125)10
Sistemas Digitales
6
Conversión de un sistema de Base “ r ” a Base “10” Utilizando la noción de los pesos: Ejemplo en el sistema Binario (r = 2): Peso (21)
:8 4 2 1
Digito (bi) : b3 b2 b1 b0 (1001)2 = 8 + 1 = (9)10 (0101)2 = 4 + 1 = (5)10
Sistemas Digitales
7
Conversión de un sistema de Base “10” a Base “ r ” Ejemplos de números enteros : Utilizando divisiones sucesivas por la Base msb = bit más significativo (234)10 = (EA)16 (13)10 = (1101)2 234
13 : 2 1
6
:2
0
3
:2
1
1
:2
1
0
10
14 :16
A
14
0
E
msb Sistemas Digitales
:16
msb 8
Conversión de un sistema de Base “10” a Base “ r ” Ejemplos de números enteros y decimal. Sean los números decimales 13.12510 y 234.2510 Utilizando divisiones sucesivas por la Base para la parte entera (caso anterior) y multiplicaciones sucesivas por la Base para la parte decimal. msb
msb
entero
entero
0.125
X2
0
25
X 16
4
0.250
X2
0
00
X 16
0
0.500
X2
1
1101.0012 Sistemas Digitales
EA.4016 9
Conversión de un sistema de Base “10” a Base “8” Ejemplo : convertir (145.64)10 a número octal Parte Entera : 14510= 2218 Entero
Base
Cuociente
Resto
145
8
18
1
18
8
2
2
2
8
0
2
Sistemas Digitales
10
Conversión de un sistema de Base “10” a Base “8” Ejemplo : convertir (145.64)10 a número octal Parte Decimal : 0.6410 = 0.507534….8 Decimal
Base
Producto
Acarreo
0.64
8
5.12
5
0.12
8
0.96
0
0.96
8
7.68
7
0.68
8
5.44
5
0.44
8
3.52
3
0.52
8
4.16
4
aproximación… Sistemas Digitales
…… 11
ConversiĂłn entre Base Binaria y Hexadecimal Base Binaria a Base Hexadecimal ( 1100 0011 1111 . 1101 )2 = ( C3F.D )16 C
3
F
D
( 0001 1000 )2 = ( 18 )16
Completando Con 0’s Sistemas Digitales
12
Conversiรณn entre Base Binaria y Hexadecimal Base Base Hexadecimal a Base Binaria
( 4AB.F5 )16 = ( 0100 1010 1011 . 1111 0101 )2
Sistemas Digitales
13
Conversión entre Base Binaria y Octal Base Binaria a Base Octal ( 010 000 111 111 . 110 100 )2 = ( 2077.64 )8 Completando Con 0’s Base Base Octal a Base Binaria ( 457.05 )8 = ( 100 101 111 . 000 101 )2
Sistemas Digitales
14
BCD : Binary Coded Decimal Representación en código binario de 4 bits de los números decimales. Números Decimales
Código BCD
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
Sistemas Digitales
15
BCD : Binary Coded Decimal Ejemplo: ( 4096 )10
4 0 9 6 = 0100 0000 1001 0110
Número decimal
Representación BCD
Comparación con su representación en Base binaria. ( 4096 )10 = ( 1000000000000 )2
Sistemas Digitales
16
ARITMETICA BINARIA ( SUMA ) • Condiciones : • 0+0=0 • 0+1=1 • 1+0=1 • 1 + 1 = 0 más un acarreo a la siguiente posición más significativa.
Sistemas Digitales
17
ARITMETICA BINARIA ( SUMA ) • Ejemplo : Acarreos
1
+ 1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
SUMA Sistemas Digitales
18
ARITMETICA BINARIA ( SUMA )
• Ejemplo :
+
Sistemas Digitales
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
19
ARITMETICA BINARIA ( SUMA ) • Ejemplo : 10
+ 1
Sistemas Digitales
0
10
10
10
1
10
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
Acarreos
Suma
20
ARITMETICA BINARIA ( RESTA ) • Condiciones : 0-0=0 1-0=1 1-1=0 0 – 1 = 1 tomando prestado 1, ó 10 – 1 = 1 La última regla señala que si se resta un bit 1 de un bit 0, hay que tomar prestado un 1 de la siguiente columna más significativa. Sistemas Digitales
21
ARITMETICA BINARIA ( RESTA ) • Ejemplo : Restar 10011012 - 101112 6
5
4
3
1 0
1
1
Sistemas Digitales
1
0
10
10 10
0
2
Columnas Prestamos
0
0
10
0
1
1
0
1
Minuendo
1
0
1
1
1
Sustraendo
1
0
1
1
0
Diferencia
Prestamos
22
ARITMETICA BINARIA ( RESTA ) • Ejemplo : Restar 111012 - 101112
-
4
3
2
1
0
Columnas
1
1
1
0
1
Minuendo
1
Sustraendo
0
Diferencia
1+0=1 0+1=1 1+1=0 1+0=1 1
Sistemas Digitales
0
1
1
23
ARITMETICA BINARIA ( MULTIPLICACION) • Ejemplo: Multiplicar 101112 por 10102 1
0
1
1
1
Multiplicando
1
0
1
0
Multiplicador
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
X
+
Sistemas Digitales
1
1
0
Producto 24
ARITMETICA BINARIA (MULTIPLICACION) • Ejemplo: Multiplicar 101112 por 10102 1 X
+ + + 1 1
0 0 0 1
Sistemas Digitales
1 1 0 1 1 1
0 0 0 0 0 1 0
0 1 0 1 1 0 1 1 0
1 0 0 1 1 0 1
1 1 0 1 1
1 0 0
1
0
1
1
0
0
Multiplicando Multiplicador Producto 1 Producto 2 Acumulativo 1 Producto 3 Acumulativo 2 Producto 4 Producto
25
ARITMETICA BINARIA (DIVISION) • Ejemplo: Dividir 11101112 entre 10012
Divisor
1 1 0 1
Cuociente
1 0 0 1 1 1 1 0 1 1 1
Dividendo
1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0
Sistemas Digitales
Residuo
26
ARITMETICA OCTAL (SUMA y RESTA) • Ejemplo: Sumar 41638 + 75208 1
1
Acarreos
4
1
6
3
Sumando
+
7
5
2
0
Sumando
1
3
7
0
3
Suma
• Ejemplo: Sustraer 51738 de 62048
-
1
10
6
2
0
4
Minuendo
5
1
7
3
Sustraendo
1
0
1
1
Diferencia
Sistemas Digitales
Prestado
27
ARITMETICA OCTAL (Multiplicaciรณn) โ ข Ejemplo: Multiplicar 41678 x 25038 4
1
6
7
Multiplicando
x
2
5
0
3
Multiplicador
1
4
5
4
5
Productos Parciales
3
0
0
4
5
Producto
2
5
1
2
+ 1
0
3
5
6
1
3
1
0
5
Sistemas Digitales
28
ARITMETICA OCTAL (Divisiรณn) โ ข Ejemplo: Dividir 41638 : 258
Divisor
2
1
4
7
Cuociente
6
3
Dividendo
5
4
1
-
2
5
1
4
6
1
2
4
2
2
3
2
2
3
-
-
0 Sistemas Digitales
Residuo 29
ARITMETICA HEXADECIMAL ( Suma) • Ejemplo: Sumar 2A5816 + 71D016 1
+
Sistemas Digitales
Acarreos
2
A
5
8
Sumando
7
1
D
0
Sumando
9
C
2
8
Suma
30
ARITMETICA HEXADECIMAL ( Resta) • Ejemplo: Sustraer 4A3616 de 9F1B16
-
Sistemas Digitales
E
11
Prestamos
9
F
1
B
Minuendo
4
A
3
6
Sustraendo
5
4
E
5
Diferencia
31
ARITMETICA HEXADECIMAL (Multiplicaciรณn) โ ข Ejemplo: Multiplicar 5C2A16 X 71D016
X
+
5
C
2
A
Multiplicando
7
1
D
0
Multiplicador
2
0
Productos Parciales
2
0
Producto
4
A
E
2
5
C
2
A
2
8
5
2
6
2
8
F
9
6
Sistemas Digitales
C
32
ARITMETICA HEXADECIMAL (Divisiรณn) โ ข Ejemplo: Dividir 27FCA16 : 3E16
Divisor
3
Sistemas Digitales
E
A
5
1
Cuociente
C
A
Dividendo
2
7
F
2
6
C
1
3
C
1
3
6 6
A
3
E
2
C
Residuo 33
NUMEROS SIGNADOS Las computadoras construyen los signos “+” y “-” mediante los bits “0” y “1” respectivamente. Mediante un bir adicional, conocido como bit de signo es puesto como el bit más significativo de una expresión binaria. • Ejemplo:
Magnitud -1310 = 1,11012
Bit de Signo
+2710=0,11011 Separador de Signo
Sistemas Digitales
34
NUMEROS SIGNADOS Representación de los Complementos Representación en Complemento 1’s La representación en complemento 1’s de un número binario signado, se expresa cambiando el operando del número por su complemento (0 por 1 y 1 por 0) y manteniendo el bit de signo. Por ejemplo: Sea N= +6 valor positivo, de representación binaria 0,01102 , su complemento 1’a será 0,10012. Sea N= -17 valor negativo, de representación su complemento 1’s será binaria 1,100012 , 1,011102. Sistemas Digitales
35
NUMEROS SIGNADOS Representación de los Complementos La primera ventaja de complementar números, es que el proceso de la sustracción se ejecuta por la adición de ellos. Asuma por ejemplo, que se desea realizar la operación siguiente: (+1710) – (+1210) = (+1710) + (-1210) Sea N=(+1710) = 0,100012 y N=(+1210)= 0,011002, El complemento 1’s de N(-1210) = 1,100112 , luego se tiene N=(+1710) + N=(-1210)
Sistemas Digitales
36
NUMEROS SIGNADOS Representaciรณn de los Complementos 1
+
1
0
0
1
1
0,
1
0
0
0
1
Bits de acarreo + 1710
1,
1
0
0
1
1
- 1210
0,
0
0
1
0
0
+ 410
+
1 0,
Sistemas Digitales
0
0
1
0
1
+ 510
37
NUMEROS SIGNADOS Rango de representación de los números signados. Combinando 8 bits (1 byte), se pueden representar hasta 256 números diferentes. Con dos bytes, hasta 65.536 números diferentes. La fórmula para calcular el número de combinaciones diferentes de “n” bits es: N° total de combinaciones = 2n Para los números con signo en complemento a 2, el rango de valores para números de “n” bits es: -(2n-1) a +(2n-1 -1) habiendo en cada caso un bit de signo y n-1 bits de magnitud. Con 4 bits el rango es de -8 a +7. Sistemas Digitales
38
ARITMETICA BINARIA DE NUMEROS CON SIGNO LA SUMA Cuando se suman dos números binarios con signo se pueden producir cuatro casos: 1. Ambos números son positivos. 2. El número positivo es mayor que el negativo en valor absoluto. 3. El número negativo es mayor que el positivo en valor absoluto. 4. Ambos números son negativos.
Sistemas Digitales
39
ARITMETICA BINARIA DE NUMEROS CON SIGNO Caso 1: Cs+1 Cs
0, 0 0 0 0 1 1 1
+7
+ 0, 0 0 0 0 1 0 0
+4
0, 0 0 0 1 0 1 1
+11
Si Cs+1 = Cs se descarta Acarreo Si Cs+1 = Cs se considera Acarreo y la coma se desplaza un bit a la izquierda Sistemas Digitales
40
ARITMETICA BINARIA DE NUMEROS CON SIGNO Caso 2: 0, 0 0 0 1 1
1 1
+15
+ 1, 0 0 0 0 1
1 0
-6
1
1
0, 0 0 0 1 1 1 1
+15
+ 1, 1 1 1 1 0 1 0
-6
0, 0 0 0 1 0 0 1
+9
Sistemas Digitales
Compl. 2
41
ARITMETICA BINARIA DE NUMEROS CON SIGNO Caso 3: 0, 0 0 1 0 0
0 0
+16
+ 1, 0 0 1 1 0
0 0
-24
0, 0 0 1 0 0
0 0
+16
+ 1, 1 1 0 1 0
0 0
-24 Compl. 2
1, 1 1 1 1 0
0 0
0
Sistemas Digitales
0
-8
42
ARITMETICA BINARIA DE NUMEROS CON SIGNO Caso 4: 1, 0 0 0 0 1
0 1
-5
+ 1, 0 0 0 1 0
0 1
-9
1, 1 1 1 1 0
1 1
-5 Compl. 2
+ 1, 1 1 1 0 1
1 1
-9 Compl. 2
1, 1 1 1 0 0
1 0
1
Sistemas Digitales
1
-14
43
ARITMETICA BINARIA DE NUMEROS CON SIGNO LA RESTA
-
Sistemas Digitales
N1
MINUENDO
N2
SUSTRAENDO
+N3
DIFERENCIA
44
ARITMETICA BINARIA DE NUMEROS CON SIGNO LA RESTA Se deben aplicar dos reglas en la sustracción en complemento 2’s : Regla I Al sacar el complemento 2’s del sustraendo se debe considerar lo siguiente: 1. Si es un número Positivo cámbielo a un número negativo en complemento 2’s. 2. Si es un número Negativo cambie la magnitud del número a uno positivo, es decir, sólo complementa el signo. Sistemas Digitales
45
ARITMETICA BINARIA DE NUMEROS CON SIGNO LA RESTA Regla II Después de sacar el complemento 2’s del sustraendo súmelo al minuendo y obtenga la diferencia. El bit correspondiente determina si éste desde luego si se binaria correcta o en
Sistemas Digitales
al signo de la diferencia es positivo o negativo y encuentra en la forma complemento 2’s.
46
ARITMETICA BINARIA DE NUMEROS CON SIGNO LA RESTA Ejemplos :
-
0,
1
0
0
1
+9
0,
0
1
0
0
+4 +5
1
-
1
0,
1
0
0
1
+9
1,
1
1
0
0
+4
0,
0
1
0
1
+5
Sistemas Digitales
C. 2’s
47
ARITMETICA BINARIA DE NUMEROS CON SIGNO LA RESTA Ejemplos :
-
0,
1
0
0
1
+9
1,
0
1
0
0
-4 +13
0
-
0
0,
1
0
0
1
+9
0,
0
1
0
0
-4
0,
1
1
0
1
+13
Sistemas Digitales
C. signo
48
ARITMETICA BINARIA DE NUMEROS CON SIGNO LA RESTA Ejemplos :
-
1,
1
0
0
1
-9
0,
0
1
0
0
+4 -13
1
1
1,
-
0
1
1
1
1,
1
1
0
0
1,
0
0
1
1
Sistemas Digitales
-9
C. 2’s
+4
C. Signo y 2’s
-13 49
ARITMETICA BINARIA DE NUMEROS CON SIGNO LA RESTA Ejemplos :
-
1,
1
0
0
1
-9
1,
0
1
0
0
-4 -5
0
-
0
1,
0
1
1
1
-9
C. 2’s
0,
0
1
0
0
-4
C. Signo
1,
1
0
1
1
-5
Sistemas Digitales
50
ARITMETICA BINARIA DE NUMEROS CON SIGNO LA RESTA Ejemplos :
-
0,
0
1
0
0
+4
1,
0
1
0
0
-4 +8
0
-
0
0,
0
1
0
0
+4
0,
0
1
0
0
-4
0,
1
0
0
0
+8
Sistemas Digitales
C. Signo
51
ARITMETICA DE NUMEROS EN CODIGO BCD LA SUMA
BCD es un código numérico y que puede utilizarse en operaciones
aritméticas.
La
suma
es
la
más
importante de estas operaciones, ya que las otras tres
operaciones
(sustracción,
multiplicación
y
división) se pueden llevar a cabo utilizando la suma. A continuación, se explicará como se suman dos números en código BCD.
Sistemas Digitales
52
ARITMETICA DE NUMEROS EN CODIGO BCD LA SUMA Paso 1. Sumar los dos números BCD utilizando las reglas de la suma binaria. Paso 2. Si una suma de 4 bits es igual o menor que 9, es un número BCD válido. Paso 3. Si una suma de 4 bits es mayor que 9, o si genera acarreos en el grupo de 4 bits, el resultado no es valido. En este caso, se suma 6 (0110) al grupo de 4 bits para saltar así los seis estados no válidos y pasar al código 8421. Si se genera un acarreo al sumar 6, éste se suma al grupo de 4 bits siguiente. Sistemas Digitales
53
ARITMETICA DE NUMEROS EN CODIGO BCD LA SUMA 1 0 0 1
9
+ 0 1 0 0 1 1 0 1
+ BCD no vรกlido > 9
+ 0 1 1 0
Se Suma 6
0 0 0 1
0 0 1 1
BCD vรกlido
1
3
Sistemas Digitales
4 13
54
ARITMETICA DE NUMEROS EN CODIGO BCD LA SUMA 1 0 0 1
9
+ 1 0 0 1 1
+
0 0 1 0 No vรกlido por acarreo + 0 1 1 0
Se Suma 6
0 0 0 1
1 0 0 0
BCD vรกlido
1
8
Sistemas Digitales
9 18
55
ARITMETICA DE NUMEROS EN CODIGO BCD LA SUMA 0 0 0 1
0 1 1 0
16
+ 0 0 0 1
0 1 0 1
+ 15
0 0 1 0 + acarreo
1 0 1 1
1 + 0 1 1 0
0 0 1 1
0 0 0 1
3
1
Sistemas Digitales
BCD no válido > 9 BCD válido
31
Se Suma 6 BCD’s válidos
56
ARITMETICA DE NUMEROS EN CODIGO BCD LA SUMA 0110
0111
67
0101
0011
+ 53
1011
1 0 1 0 BCD’s no válidos > 9
1
0110
0110
Se Suma 6
0 001
0010
0000
BCD’s Válidos
1
2
0
+
+
Sistemas Digitales
120
57
ARITMETICA DE NUMEROS EN CODIGO BCD LA RESTA
-
0100
0101
0011
0101
0001
0001
1
1
Sistemas Digitales
45 -
34 11
BCD’s válidos
58
ARITMETICA DE NUMEROS EN CODIGO BCD LA RESTA
-
0010
1000
0001
1001
0000 -
28 -
1111
BCD no vรกlido BCD vรกlido
0110
Resta 6
9
1001
9 Sistemas Digitales
19
59
CODIGOS DIGITALES
Existen muchos códigos especializados que se usan en sistemas digitales, tales como el código Gray, el código de exceso 3 y el código ASCII. El código Gray es un código sin pesos y no aritmético; es decir, no existen pesos específicos asignados a la posición de los bits. La característica más importante del código Gray es que sólo varía un bit de un código al siguiente.
Sistemas Digitales
60
CODIGO DIGITAL GRAY 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
Sistemas Digitales
61
CODIGO DIGITAL GRAY 1. Convertir a 11000110.
código
Gray,
el
número
binario
2. Convertir a binario el código Gray 10101111. Solución 1. Binario a código Gray: 1 + 1 + 0 + 0 + 0 + 1 + 1 + 0 1
0
1
0
0
1
0
1
Observación : no tener en cuenta el acarreo Sistemas Digitales
62
CODIGO DIGITAL GRAY 2. Cรณdigo Gray a Binario:
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
Sumar en esta direcciรณn sin acarreo
Sistemas Digitales
63
CODIGO DIGITAL EXCESO 3 Es un código digital relacionado con el BCD, y se deriva de él sumando 3 a cada dígito decimal y convirtiendo el resultado de esta suma en número binario de 4 bits. Es un código sin ningún peso. DECIMAL
BCD
EXCESO-3
0
0000
0011
1
0001
0100
2
0010
0101
3
0011
0110
4
0100
0111
5
0101
1000
6
0110
1001
7
0111
1010
8
1000
1011
9
1001
1100
Sistemas Digitales
64
CODIGO DIGITAL EXCESO 3 Ejemplo: • Convertir a código exceso 3 el número decimal 430 4 +
3 7
Exceso-3
0111
Sistemas Digitales
3 +
3 6
0110
0 +
3 3
0011 65
ASCII El American Estándar Code for Information Interchange (ASCII, código estándar americano para el intercambio de información), es un código alfanumérico universalmente aceptado, que se usa en la mayoría de los computadores y otros equipos electrónicos (teclados). Dispone de 128 caracteres que se representan por códigos binarios de 7 bits. Letras , números y símbolos. Ejemplos:
Sistemas Digitales
Carácter P =
Binario 1010000
Hexadec. 5016
0111101
3D16 66
Método de paridad para la detección de errores Mucho sistemas emplean un bit de paridad como medio para la detección de errores de bit. Cualquier grupo de bits contiene un número par o impar de 1s. Un bit de paridad se añade al grupo de bits para hacer que el número total de 1s en el grupo sea siempre par o siempre impar. Un bit de paridad par hace que el número total de 1s en el grupo sea par y un bit de paridad impar hace que el número total de 1s en el grupo sea impar. Un determinado sistema puede funcionar con paridad par o impar, pero no con ambas. Sistemas Digitales
67
Método de paridad para la detección de errores Por ejemplo, si un sistema trabaja con paridad par, una comprobación que se realice en cada grupo de bits recibidos tiene que asegurar que el número total de 1s en ese grupo es par. Si hay un número total impar de 1s, quiere decir que se ha producido un error. El bit de paridad se puede añadir al principio o al final del código, dependiendo del diseño de dell sistema. Observe que el número total de 1s incluyendo el bit de paridad es siempre par para paridad par, y siempre es impar para paridad impar. Sistemas Digitales
68
Método de paridad para la detección de errores Detección de un error. Un bit de paridad facilita la detección de un único error de bit, pero no puede detectar dos errores dentro de un grupo. Ejemplo: Transmitir el código BCD 0101 con paridad par. Bit de paridad par 00101 Código BCD
Sistemas Digitales
69
Código HAMMING de Corrección de Errores
Este código no sólo permite detectar un bit erróneo, sino también identifica el bit erróneo de forma que pueda ser corregido. El código utiliza un número de bits de paridad (dependiendo del número de bits de información), localizados en determinadas posiciones del grupo del código. La detección del código que aquí se presenta corresponde a una única corrección de error.
Sistemas Digitales
70
Código HAMMING de Corrección de Errores Números de Paridad Si al número de bits de información lo designamos como m, entonces el número de bits de paridad, p, se determina mediante la siguiente relación: 2p> m + p + 1 Por ejemplo, si se tiene cuatros bits de información (m=4), p se calcula mediante el método de prueba y error. Sea p=2, entonces 2p >=22=4
y
m+p+1=4+2+1=7
Puesto que p=2 no satisface la ecuación, se busca probar con p=3. Sistemas Digitales
71
Código HAMMING de Corrección de Errores
Sea p=3, entonces: 2p=23=8
y
m+p+1=4+3+1=8
este valor de p satisface la ecuación, de manera que se necesitan tres bits de paridad para proporcionar corrección simple de errores para cuatro bits de información. Conviene fijarse en que la detección y corrección errores se proporciona para todos los bits, tanto paridad como de información, dentro de un grupo código.
Sistemas Digitales
72
de de de
Código HAMMING de Corrección de Errores Situación de los bits de paridad dentro del código Se debe tener en cuenta que en esta expresión, el código se compone de cuatro bits de información y de tres bits de paridad. El bit más a la izquierda se designa como bit 1, el siguiente bit 2, y así sucesivamente del mismo modo: bit 1, bit 2, bit 3, bit 4, bit 5, bit 6 , bit 7
Sistemas Digitales
73
Código HAMMING de Corrección de Errores Los bits de paridad se sitúan en las posiciones cuya numeración corresponde a las potencias de dos en sentido ascendente (1,2,4,8,…..), tal como se indica: P1, P2, M1, P3, M2, M3, M4 El símbolo Pn designa un determinado bit de paridad y Mn designa un determinado bit de información.
Sistemas Digitales
74
Código HAMMING de Corrección de Errores Asignación de valores a los bits de paridad 1. Se tiene que asignar un valor 1 ó 0 a cada bit de paridad. 2. Dado que cada bit de paridad comprobación de otros bits del tiene que conocer el valor de para poder asignarle un valor.
proporciona una código total, se estos otros bits
3. Para encontrar los valores del bit, primero se tiene que numerar cada posición de bit en forma de número binario. 4. A continuación, se indica la situación de los bits de paridad y de información. Sistemas Digitales
75
Código HAMMING de Corrección de Errores 5. Tenga en cuenta que el número binario que indica la posición del bit de paridad P1 contiene un 1 como el dígito más a la derecha. Este bit de paridad comprueba todas las posiciones de bit, incluída la suya propia, que tiene como valor “1” en la misma posición que los números binarios que indican la posición. Por consiguiente, el bit de paridad P1, comprueba las posiciones de bit 1, 3, 5 y 7. Tabla de posiciones de los bits para código de corrección de errores de 7 bits
Designación de bit
P1
P2
M1
P3
Posición de bit
1
2
3
4
Número binario de posición
M2 M3 M4 5
6
7
001 010 011 100 101 110 111
Bits de información (Mn) Bits de paridad (Pn) Sistemas Digitales
76
Código HAMMING de Corrección de Errores 6. El número binario de posición para el bit de paridad P2 tiene un “1” en el bit del medio. Comprueba todas las posiciones de bit, incluída la suya propia, que tienen un “1” en la misma posición. Por lo tanto, el bit de paridad P2 comprueba las posiciones de bit 2, 3, 6 y 7. 7. Bajo la misma premisa, el bit de paridad P3, comprobará las posiciones de bit 4, 5, 6 y 7. 8. En cada caso, al bit de paridad se le asigna un valor tal, que haga que el número de unos del conjunto de bits que comprueba, sea par o impar, de acuerdo a lo que especificado. Sistemas Digitales
77
Código HAMMING de Corrección de Errores Ejemplo: Determinar el código de corrección de error para el número de código BCD 1001 (bits de información), utilizando paridad par. Solución: Paso 1. Encontrar el número de bits de paridad requeridos. Sea p=3, entonces 2p = 23 = 8 y m + p + 1 = 8 tres bits de paridad son suficientes. Bits totales del código = 4 + 3 = 7
Sistemas Digitales
78
Código HAMMING de Corrección de Errores
Paso 2. Construir una tabla de posiciones de los bits para un código de corrección de errores de 7 bits. Recuerde que el número es el BCD 1001 (bits de información) Designación de bit
P1
P2
M1
P3
Posición de bit
1
2
3
4
Número binario de posición
M2 M3 M4 5
6
7
001 010 011 100 101 110 111
Bits de información (Mn)
1
0
0
1
Bits de paridad (Pn) BCD Sistemas Digitales
1001 79
Código HAMMING de Corrección de Errores Paso 3. Determinar los bits de paridad de la siguiente manera: El bit P1 comprueba las posiciones 1, 3, 5 y 7 y tiene que ser 0 para que haya un número par de unos (2) en este grupo. El bit P2 comprueba las posiciones 2, 3, 6 y 7 y tiene que ser 0 para que haya un número par de unos (2) en este grupo. El bit P3 comprueba las posiciones 4, 5, 6 y 7 y tiene que ser 1 para que haya un número par de unos (2) en este grupo.
Sistemas Digitales
80
Código HAMMING de Corrección de Errores
Paso 4. Estos bits se introducen en la tabla. Designación de bit
P1
P2
M1
P3
Posición de bit
1
2
3
4
Número binario de posición
5
6
7
001 010 011 100 101 110 111
Bits de información (Mn) Bits de paridad (Pn)
M2 M3 M4
1 0
0
0
0
1
1
El código combinado resultante es 0011001
Sistemas Digitales
81
Código HAMMING de Corrección de Errores Detección y corrección de un error Ahora que ya se tiene un método código de errores, ¿Cómo se puede error?
de construcción de un aplicar para localizar el
1. Cada bit de paridad, junto con su correspondiente grupo de bits, tiene que ser comprobado con la paridad adecuada. 2. Si hay tres entonces hay
bits que
de paridad en una palabra de código, realizar tres comprobaciones de paridad.
3. Cada comprobación de paridad nos dará un resultado correcto o incorrecto. 4. El resultado total el bit, si es que lo
Sistemas Digitales
de las comprobaciones de paridad indican hay, que es erróneo.
82
Código HAMMING de Corrección de Errores Los pasos a seguir son entonces los siguientes: Paso 1.
Comenzar con el grupo que comprueba P1.
Paso 2.
Comprobar que el grupo tenga la paridad adecuada. Un 0 representa que la comprobación de paridad es correcta y un 1 representa una mala comprobación.
Paso 3.
Repetir el paso 2 para cada grupo de paridad.
Paso 4.
El número binario formado a partir de los resultados de todas las comprobaciones de paridad determina la posición del bit de código que contiene un error. Este es el código de posición de error. La primera comprobación de paridad genera el bit menos significativo. Si todas las comprobaciones son correctas, no hay error.
Sistemas Digitales
83
Código HAMMING de Corrección de Errores Ejemplo : Suponer que la palabra de código del ejemplo anterior (0011001) es transmitida y que recibimos 0010001. El receptor no “conoce” cuál fue la palabra transmitida y tiene que buscar las paridades adecuadas para determinar si el código es correcto. Encontrar cualquier error que haya habido en la transmisión si utilizamos paridad par. Solución : Construimos una tabla de posición de bit: Designación de bit
P1
P2
M1
P3
Posición de bit
1
2
3
4
Número binario de posición Código recibido Sistemas Digitales
M2 M3 M4 5
6
7
001 010 011 100 101 110 111
0
0
1
0
0
0
1 84
Código HAMMING de Corrección de Errores Primera comprobación de paridad: El bit P1 comprueba las posiciones 1, 3, 5 y 7. Hay dos unos en este grupo Comprobación de paridad correcta
0 (LSB)
Segunda comprobación de paridad: El bit P2 comprueba las posiciones 2, 3, 6 y 7. Hay dos unos en este grupo Comprobación de paridad correcta
0
Tercera comprobación de paridad: El bit P3 comprueba las posiciones 4, 5, 6 y 7. Hay un uno en este grupo Comprobación de paridad incorrecta Sistemas Digitales
1 (MSB) 85
Código HAMMING de Corrección de Errores
Resultado: El código de posición de error es 100 (cuatro binario). Esto indica que el bit de la posición 4 es erróneo, y que es un 0 cuando debería ser un 1. El código corregido es 0011001, que concuerda con el código transmitido.
Sistemas Digitales
86