You are on page 1of 86

SISTEMAS NUMERICOS

2009

Sistemas Digitales 1
SISTEMAS NUMERICOS
Conjunto ordenado de símbolos llamados “dígitos”,
con relaciones definidas para operaciones de :
o 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
A,B,C,D,E,F
se usan en todos los sistemas

Sistemas Digitales 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 −1
N= ∑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
Sistemas 5 101 5 5
6 110 6 6
de 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 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
(13)10 = (1101)2 (234)10 = (EA)16

13 : 2 234 :16

1 6 :2 10 14 :16

0 3 :2 A 14 0

1 1 :2 E

1 0
msb
msb
Sistemas Digitales 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 EA.4016

Sistemas Digitales 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:
4 0 9 6
( 4096 )10 = 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 0 1

+ 0 1 0 1 1 1

1 0 1 0 1 0 0

SUMA
Sistemas Digitales 18
ARITMETICA BINARIA ( SUMA )

• Ejemplo :

1 1 1

1 0 0 1 0 1

+ 0 1 0 1 1 1

1 1 1 1 0 0

Sistemas Digitales 19
ARITMETICA BINARIA ( SUMA )

• Ejemplo :

10 10 10 10 1 10 Acarreos

1 0 1 1 0 1

1 1 0 1 0 1

0 0 1 1 0 1

+ 0 1 0 0 0 1

1 0 0 0 0 0 0 0 Suma

Sistemas Digitales 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 2 1 0 Columnas

1 10 Prestamos

0 10 10 0 0 10 Prestamos

1 0 0 1 1 0 1 Minuendo

- 1 0 1 1 1 Sustraendo

1 1 0 1 1 0 Diferencia

Sistemas Digitales 22
ARITMETICA BINARIA ( RESTA )

• Ejemplo : Restar 111012 - 101112

4 3 2 1 0 Columnas

1 1 1 0 1 Minuendo

- 1+0=1 0+1=1 1+1=0 1+0=1 1 Sustraendo

1 0 1 1 0 Diferencia

Sistemas Digitales 23
ARITMETICA BINARIA ( MULTIPLICACION)

• Ejemplo: Multiplicar 101112 por 10102

1 0 1 1 1 Multiplicando
X 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 1 1 0 Producto

Sistemas Digitales 24
ARITMETICA BINARIA (MULTIPLICACION)

• Ejemplo: Multiplicar 101112 por 10102


1 0 1 1 1 Multiplicando
X 1 0 1 0 Multiplicador
0 0 0 0 0 Producto 1
+ 1 0 1 1 1 Producto 2
1 0 1 1 1 0 Acumulativo 1
+ 0 0 0 0 0 Producto 3
0 1 0 1 1 1 0 Acumulativo 2
+ 1 0 1 1 1 Producto 4
1 1 1 0 0 1 1 0 Producto

Sistemas Digitales 25
ARITMETICA BINARIA (DIVISION)

• Ejemplo: Dividir 11101112 entre 10012

1 1 0 1 Cuociente

Divisor 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 Residuo

Sistemas Digitales 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 Prestado
6 2 0 4 Minuendo
- 5 1 7 3 Sustraendo
1 0 1 1 Diferencia

Sistemas Digitales 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

2 5 1 2 3 0
+ 1 0 3 5 6
1 3 1 0 5 0 4 5 Producto

Sistemas Digitales 28
ARITMETICA OCTAL (División)

• Ejemplo: Dividir 41638 : 258

1 4 7 Cuociente
Divisor 2 5 4 1 6 3 Dividendo
- 2 5
1 4 6
- 1 2 4
2 2 3
- 2 2 3
0 Residuo

Sistemas Digitales 29
ARITMETICA HEXADECIMAL ( Suma)

• Ejemplo: Sumar 2A5816 + 71D016

1 Acarreos
2 A 5 8 Sumando
+ 7 1 D 0 Sumando
9 C 2 8 Suma

Sistemas Digitales 30
ARITMETICA HEXADECIMAL ( Resta)

• Ejemplo: Sustraer 4A3616 de 9F1B16

E 11 Prestamos
9 F 1 B Minuendo

- 4 A 3 6 Sustraendo
5 4 E 5 Diferencia

Sistemas Digitales 31
ARITMETICA HEXADECIMAL (Multiplicación)

• Ejemplo: Multiplicar 5C2A16 X 71D016

5 C 2 A Multiplicando

X 7 1 D 0 Multiplicador

4 A E 2 2 0 Productos
Parciales
5 C 2 A

+ 2 8 5 2 6

2 8 F 9 6 C 2 0 Producto

Sistemas Digitales 32
ARITMETICA HEXADECIMAL (División)

• Ejemplo: Dividir 27FCA16 : 3E16

A 5 1 Cuociente
Divisor 3 E 2 7 F C A Dividendo
2 6 C
1 3 C
1 3 6
6 A
3 E
2 C Residuo

Sistemas Digitales 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

+2710=0,11011
Bit de
Separador
Signo 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
binaria 1,100012 , su complemento 1’s será
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 Bits de
acarreo
0, 1 0 0 0 1 + 1710

+ 1, 1 0 0 1 1 - 1210

0, 0 0 1 0 0 + 410

+ 1

0, 0 0 1 0 1 + 510

Sistemas Digitales 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 Compl. 2

0, 0 0 0 1 0 0 1 +9

Sistemas Digitales 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, 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 -8

Sistemas Digitales 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 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 -14

Sistemas Digitales 43
ARITMETICA BINARIA DE NUMEROS CON SIGNO
LA RESTA

N1 MINUENDO

- N2 SUSTRAENDO
+ N3 DIFERENCIA

Sistemas Digitales 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:
• Si es un número Positivo cámbielo a un número
negativo en complemento 2’s.
• 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 al signo de la diferencia
determina si éste es positivo o negativo y desde
luego si se encuentra en la forma binaria
correcta o en complemento 2’s.

Sistemas Digitales 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 C. 2’s
0, 0 1 0 1 +5

Sistemas Digitales 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 C. signo
0, 1 1 0 1 +13

Sistemas Digitales 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 -9 C. 2’s
- +4 C. Signo
1, 1 1 0 0
y 2’s
1, 0 0 1 1 -13

Sistemas Digitales 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 C. Signo
0, 1 0 0 0 +8

Sistemas Digitales 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 + 4
1 1 0 1 BCD no válido > 9 13
+ 0 1 1 0 Se Suma 6

0 0 0 1 0 0 1 1 BCD válido

1 3

Sistemas Digitales 54
ARITMETICA DE NUMEROS EN CODIGO BCD
LA SUMA

1 0 0 1 9
+ 1 0 0 1 + 9
1 0 0 1 0 No válido por acarreo 18
+ 0 1 1 0 Se Suma 6

0 0 0 1 1 0 0 0 BCD válido

1 8

Sistemas Digitales 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
BCD no válido > 9
0 0 1 0 1 0 1 1 31
BCD válido
+ acarreo 1 + 0 1 1 0 Se Suma 6

0 0 1 1 0 0 0 1 BCD’s válidos

3 1

Sistemas Digitales 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 120
+ 1 0110 0110 Se Suma 6

0 0 01 0010 0000 BCD’s Válidos

1 2 0

Sistemas Digitales 57
ARITMETICA DE NUMEROS EN CODIGO BCD
LA RESTA

0100 0101 45
- 0011 0100 - 34
0001 0001 BCD’s válidos 11

1 1

Sistemas Digitales 58
ARITMETICA DE NUMEROS EN CODIGO BCD
LA RESTA

0010 1000 28
- 0001 1001 - 19
BCD no válido
0000 1111 9
BCD válido
- 0110 Resta 6

1001

Sistemas Digitales 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 código Gray, el número binario


11000110.
2. Convertir a binario el código Gray 10101111.

Solución

• 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

• 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 0

+ 3 + 3 + 3

7 6 3

Exceso-3 0111 0110 0011

Sistemas Digitales 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:
Carácter Binario Hexadec.
P 1010000 5016
= 0111101 3D16

Sistemas Digitales 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 del
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 de
errores se proporciona para todos los bits, tanto de
paridad como de información, dentro de un grupo de
código.

Sistemas Digitales 72
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


• Se tiene que asignar un valor 1 ó 0 a cada bit de
paridad.
• Dado que cada bit de paridad proporciona una
comprobación de otros bits del código total, se
tiene que conocer el valor de estos otros bits para
poder asignarle un valor.
• Para encontrar los valores del bit, primero se
tiene que numerar cada posición de bit en forma
de número binario.
• 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
• 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 M2 M3 M4
Posición de bit 1 2 3 4 5 6 7
Número binario de posición 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

• 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.
• Bajo la misma premisa, el bit de paridad P3,
comprobará las posiciones de bit 4, 5, 6 y 7.
• 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 M2 M3 M4
Posición de bit 1 2 3 4 5 6 7
Número binario de posición 001 010 011 100 101 110 111
Bits de información (Mn) 1 0 0 1
Bits de paridad (Pn)

BCD 1001
Sistemas Digitales 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 M2 M3 M4
Posición de bit 1 2 3 4 5 6 7
Número binario de posición 001 010 011 100 101 110 111
Bits de información (Mn) 1 0 0 1
Bits de paridad (Pn) 0 0 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 de construcción de un


código de errores, ¿Cómo se puede aplicar para localizar el
error?
• Cada bit de paridad, junto con su correspondiente grupo de
bits, tiene que ser comprobado con la paridad adecuada.
• Si hay tres bits de paridad en una palabra de código,
entonces hay que realizar tres comprobaciones de paridad.
• Cada comprobación de paridad nos dará un resultado
correcto o incorrecto.
• El resultado total de las comprobaciones de paridad indican
el bit, si es que lo hay, que es erróneo.

Sistemas Digitales 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 M2 M3 M4
Posición de bit 1 2 3 4 5 6 7
Número binario de posición 001 010 011 100 101 110 111

Código recibido 0 0 1 0 0 0 1

Sistemas Digitales 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 1 (MSB)

Sistemas Digitales 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

You might also like