Sistemas Numéricos y Códigos

Page 1

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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.