Tema I. Sistemas Numéricos y Códigos...

35
Tema I. Sistemas Numéricos y Códigos Binarios Números binarios. Aritmética binaria. Números en complemento-2. Códigos binarios (BCD, alfanuméricos, etc)

Transcript of Tema I. Sistemas Numéricos y Códigos...

Page 1: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Tema I. Sistemas Numéricos y Códigos Binarios

• Números binarios.

• Aritmética binaria.

• Números en complemento-2.

• Códigos binarios (BCD, alfanuméricos, etc)

Page 2: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Números binarios

• El bit. Representación de datos mediante bits.Número mínimo de bits para representar unconjunto finito de datos.

• Representación de números en binario mediantepesos. Conversión de números entre base 10 ybase 2.

• Representación de números en base 8 (octal) ybase 16 (hexadecimal).

Page 3: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

• Bit (Binary unit). Mínima cantidad de información quese puede representar. Toma dos valores: 0, 1.

Para representar más información hay que usarconjuntos de bits. Agrupaciones de bits:

- Nibble (4 bits), Byte (8 bits).

- Kbit (1024 bits), Kbyte (1024 bytes).

- 64 Kbytes (65536 bytes).

• Representación de datos mediante bits:

Colores = {Blanco, Amarillo, Rojo, Verde, Azul, Negro}

Blanco <=> 000; Verde <=> 100;

Amarillo <=> 010; Azul <=> 101;

Rojo <=> 011; Negro <=> 111;

Page 4: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

• ¿Cuál es número de bits mínimo que se necesita pararepresentar un conjunto de datos?.

- 1 bit. 2 combinaciones (0, 1). Hasta 2 datos.

- 2 bits. 4 combinaciones: (00, 01, 10, 11).

Hasta 4 datos.

- 3 bits. 8 combinaciones:

(000, 001, 010, 011, 100, 101, 110, 111).

Hasta 8 datos.

- N bits: 2N combinaciones. Hasta 2N datos.

Dado un conjunto de datos de M elementos senecesitan para codificarlo en binario al menos N bits,donde: M ≤ 2N, ó

)(log 2 MN ≥

Page 5: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

• Representación de números en punto fijo. Sesupone el punto decimal fijo en una posición.Normalmente los números se describen en basedecimal ó base 10:

10i

i

ia •∑

• En cualquier otra base “r”:

[ ]9,0∈ai

rai

i

i•∑ [ ]1,0 −∈ rai

• En base 2:

2i

i

ia •∑ [ ]1,0∈ai

Los términos ai corresponden a los dígitos del númeromientras que los términos ri (10i ó 2i) corresponden alpeso del dígito en el número.

Page 6: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Números en base 10

i … 3 2 1 0 . -1 -2 -3 …

10i 1000 100 10 1 . 0.1 0.01 0.001

270.75 0 2 7 0 . 7 5 0

Números en base 2

i … 8 7 6 5 4 3 2 1 0 . -1 -2 -3 …

2i 256 128 64 32 16 8 4 2 1 . 0.5 0.25 0.125

270.75 1 0 0 0 0 1 1 1 0 . 1 1 0

163 0 1 0 1 0 0 0 1 1 . 0 0 0

85 0 0 1 0 1 0 1 0 1 . 0 0 0

27 0 0 0 0 1 1 0 1 1 . 0 0 0

Page 7: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

• Paso de la parte entera de base 10 a base 2 pormultiplicación iterativa: al dividir un número por labase aparece el coeficiente más bajo en el resto dela división. Dividir iterativamente hasta que elcociente de la división sea 0.

(an ... a3 a2 a1 a0)/ r = (an ... a3 a2 a1 . a0)

23/ 2 = 11. Resto 1; a0 = 1

11/ 2 = 5. Resto 1; a1 = 1

5/ 2 = 2. Resto 1; a2 = 1

2/ 2 = 1. Resto 0; a3 = 0

1/ 2 = 0. Resto 1; a4 = 1. Fin de División

(23)10 = (10111)2 = 16 + 4 + 2 + 1

Page 8: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

• Paso de la parte fraccionaria de base 10 a base 2por división iterativa: al multiplicar un número por labase aparece el coeficiente más bajo en la parteentera del producto. Multiplicar iterativamente hastaque la parte fraccionaria del producto sea 0.

(0.a-1a-2 a-3 … a-n)* r = (a-1.a-2 a-3 … a-n)

0.34375 * 2 = 0.6875. Parte entera 0; a-1 = 0

0.6875 * 2 = 1.375. Parte entera 1; a-2 = 1

0.375 * 2 = 0.750. Parte entera 0; a-3 = 0

0.75 * 2 = 1.50. Parte entera 1; a-4 = 1

0.50 * 2 = 1.00. Parte entera 1; a-5 = 1

Parte fraccionaria es 0. Fin de Multiplicación

(0.34375)10 = (0.01011)2

Page 9: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Formato Octal y Hexadecimal

• El uso de estas bases reduce el número de dígitos pararepresentar un número binario.

• La base 8 (octal) utiliza dígitos de 0 a 7. Se pasa de base 2 a base8 agrupando los bits de 3 en 3, y de base 8 a base 2desagrupando los dígitos de 3 en 3 bits:

(101001110011)2 => (101)(001)(110)(011) => (5 1 6 3)8

(2704)8 => (010)(111)(000)(100) => (10111000100)2

• La base 16 (hexadecimal) utiliza dígitos de 0 a 15, para ello toma0-9, A (10), B (11), C (12), D (13), E (14) y F (15). Se pasa debase 2 a base 16 agrupando los bits de 4 en 4 y de base 16 abase 2 desagrupando los dígitos de 4 en 4 bits :

(101001110011)2 => (1010)(0111)(0011) => (A 7 3)16

(E51C)16 => (1110)(0101)(0001)(1100) => (1110010100011100)2

Page 10: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Aritmética binaria

• Sumadores: Semisumador (“Half-Adder”) y sumadorcompleto (“Full-Adder”). Estructura “ripple” de uncircuito de suma.

• Restadores.

• Multiplicadores. Multiplicación de un bit.Multiplicadores mediante suma de filas.

Page 11: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Sumadores• Cuando sumamos dos operandos A y B de 1 bit se

genera la siguiente tabla según los valores de A y B. Enella 1 + 1 = 2, que debe codificarse en dos bits. Luegohay dos bits de salida:

- Suma S de peso 1.

- Acarreo de salida Co (“carry out”) de peso 2.

A + B Co S0 0 0 00 1 0 11 0 0 11 1 1 0

B S

CoA

Semisumador o “Half-Adder”

Page 12: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

A + B + Ci Co S

0 0 0 0 0

0 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1

• Cuando sumamos dos operandos A y B de más de 1bit, su primer bit se suma mediante un semisumador.

El resto de los bits requieren tres bits de suma: los dosbits de los operandos y la salida de acarreo del bitanterior que opera como acarreo de entrada Ci (“carryin”). El máximo valor de la salida es 3 luego serequieren dos bits de salida como en el semisumador.

BS

CoA

Ci

Sumador completo ó “Full-Adder”

Page 13: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

1 1 0 1 0 1

Ahora se puede sumar bit por bit desde el menossignificativo (LSB, menor peso) hacia el más

significativo (MSB, mayor peso)

1 0 0 1 1 0

Acarreos C

A (38)

B (53)

Resultado (91) 1 0 1 1 0 1 1

1 0 0 1 0 0

A

SCo

BA

SCo

B Ci

0

0

0

0

A

SCo

B Ci

1

1 0 0 1 1

111

64 32 16 8 4 2 1Pesos

Page 14: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Restadores• Suponemos una resta M – S con

dos operandos: Minuendo (M) ySustraendo (S), donde M ≥ S.

Al restar de LSB a MSB, en 1 bitpuede pasar que S > M (0 - 1), loque obliga a pedir un bit depréstamo B (“Borrow”) al siguientebit, para realizar 10 - 1 = 1.

M - S Bo R0 0 0 00 1 1 11 0 0 11 1 0 0

(M - Bi) - S Bo R

0 0 0 0 0

0 0 1 1 10 1 0 1 10 1 1 1 01 0 0 0 11 0 1 0 01 1 0 0 01 1 1 1 1

En el bit que ha realizado elpréstamo, se tiene que hacerprimero M – B, (con laposibilidad de generarpréstamo de salida), alresultado se le resta S.

Page 15: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

0 1 1 0 1 1

Ahora se puede restar bit por bit desde el menossignificativo (LSB, menor peso) hacia el mássignificativos (MSB, mayor peso)

1 0 1 1 0 1

Pesos

Préstamos B

M (45)

S (27)

Resultado (18) 0 1 0 0 1 0

0 1 0 0 1 0

S

RBo

MS

RBo

M Bi

1

0

0

1

S

RBo

M Bi

1

0 0 1 1 0

110

32 16 8 4 2 1

Page 16: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Multiplicadores• Cuando se multiplican dos

operandos A y B de 1 bit segenera un resultado de 1 bitsegún los valores de A y B.

• Para multiplicar operandosde más de 1 bit se utiliza elmismo algoritmo que en lamultiplicación decimal, segeneran los productosparciales y luego se suman.

A * B P0 0 00 1 01 0 01 1 1

a3 a2 a1 a0

b3 b2 b1 b0

p03 p02 p01 p00

p13 p12 p11 p10

p23 p22 p21 p20

p33 p32 p31 p30

P7 P6 P5 P4 P3 P2 P1 P0

pij = bi *aj

Page 17: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

1 1 0 0

1 0 1 1

1 1 0 01 1 0 0

1 1 0 00 0 0 0

1 0 0 0 0 1 0 0

1 1 0 0

1 0 1 1

0 1 1 0 01 1 0 0

1 1 0 0

1 0 0 1 0

1 0 0 0 0 1 0 0

0 0 0 0

0 1 0 0 1

(12)

(11)

(132)

Page 18: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Números en complemento-2

• Números binarios positivos y negativos. Definiciónmediante un bit de signo.

• Números binarios en complemento-2. Definición ygeneración del complemento-2 de un número binario.Definición de números negativos y positivos mediantecomplemento-2. Sumas y restas en complemento-2.Desbordamiento.

• Números binarios en complemento-1. Comparacióncon el complemento-2.

Page 19: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Números con signo

• Un método conceptualmente sencillo de definir númerospositivos y negativos consiste en un formato (S M),donde S es un bit de signo que indica si el número espositivo o negativo, y M el módulo del número:

+9: 0 1001 +26: 0 11010

-9: 1 1001 -26: 1 11010

• Este método complica el diseño de circuitos para lasoperaciones de suma y resta. Por ejemplo, para la sumahay que comprobar si los operandos son del mismo o dedistinto signo. Si son del mismo signo se debeseleccionar la suma de sus módulos, pero si no seselecciona la resta del mayor módulo menos el de menormódulo, para lo que hay que comparar primero cuál es elde mayor módulo.

Page 20: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Definición del complemento-2

• Para un número N descrito en una base cualquiera r conn dígitos en su parte entera y m dígitos en su partefraccionaria (Nn-1 …, N1 N0 . N-1 … N-m) se define elcomplemento en la base c-a-r como:

(N)r,c = rn – N.

• Para un número binario r = 2, si el número tiene n bits ensu parte entera entonces su c-a-2 es (N)2,c = 2n – N.

Por ejemplo, si n = 5, m = 0;

(10010)2,c = 100000 – 10010 = 01110 =>

(18)2,c = 32 – 18 = 14

Se cumple que (N)2 + (N)2,c = 2n , de lo que se deduceque si un número A es (B)2,c, entonces B es (A)2,c.

También se deduce que el doble complemento de A es A.

Page 21: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Generación del c-a-2 de un número binario

• Método rápido: De derecha a izquierda se mantienentodos los ceros hasta el primer 1 que también semantiene; para el resto de los bits se cambian 0s por1s y 1s por 0s.

(10010)2,c = 01110

• Método utilizado por los circuitos digitales: Se cambiantodos los bits 0s por 1s, y 1s por 0s y se suma 2-m alresultado (un 1 en el bit menos significativo):

(10010)2,c = 01101 + 1 = 01110

Se usa este método porque la notación encomplemento se usa para definir números y operar conellos mediante sumas. Una vez que se tiene unsumador el añadir “+ 1” a una suma es sencillo.

Page 22: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Números con signo en c-a-2

• Los sistemas digitales usan normalmente la notaciónen complemento-2 para definir los números positivos ynegativos. En este sistema (N)2,c = -N.

• La definición de números se corresponde a un sistemade pesos en binario en el que el bit de más peso tienepeso negativo. Por ejemplo, para 5 bits:

-16 8 4 2 1

0 0 1 0 1 => +5 = 4 + 1

1 1 0 1 1 => -5 = -16 + 8 + 2 + 1

Si nos fijamos en el resultado (00101)2,c = (11011) y(11011)2,c = (00101) => realizar el c-a-2 equivale a uncambio de signo.

Los números positivos tiene el bit más significativo a 0,los negativos a 1.

Page 23: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

• Un sistema de números enteros en c-a-2 de n bits

puede definir números en el intervalo [-2n-1, 2n-1-1]. Para5 bits el intervalo está entre:

[-16 (10000), +15 (01111)]

• Las sumas se realizan utilizando los operandos ennotación c-a-2. Al realizar las sumas y restas en c-a-2el resultado debe tener el mismo número de bits quelos operandos de entrada (el bit de exceso Cout sedescarta). En 7 bits (-64 32 16 8 4 2 1)

24 = 0011000; -24 = 1101000

10 = 0001010; -10 = 1110110

24 – 10 = 24 + (-10) => (0011000) + (1110110) =

(1 0001110); (se descarta el bit de exceso) => (0001110) => 14

10 - 24 = 10 + (-24) = (0001010) + (1101000) =

(1 1110010 ); (se descarta el bit de exceso) => (1110010) = -14

-10 - 24 = (-10) + (-24) = (1110110) + (1101000) =

(1 1011110 ); (se descarta el bit de exceso) => (1011110) = -34.

Page 24: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

• Un problema añadido es el desbordamiento(“Overflow“): en 5 bits 14 + 14 = 28, luego no entra enel rango válido de números [-16, +15]. Soluciones:- Aumentar el número de bits mediante extensión designo. Pasar un número a un número mayor de bitsrequiere extender el signo hacia la izquierda. De 5 a6 bits:+14 = 01110 => 001110; -14 = 10010 => 110010- Detectar desbordamiento: mirar el bit de signo delos operandos, si son distintos no haydesbordamiento, si son iguales lo hay si el resultadoes de distinto signo.

• Una resta no es más que la suma de un númeronegativo => 34 – 15 = 34 + (-15). Por tanto no esnecesario utilizar circuitos sumadores y circuitosrestadores, sólo sumadores y un circuito que realiceel c-a-2: cambiar los valores de los bits y añadir 1 a lasuma.

Page 25: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Complemento-1

• Para un número N descrito en una base cualquiera r conn dígitos en su parte entera y m dígitos en su partefraccionaria (Nn-1, …, N1, N0. N-1, …, N-m) se define elcomplemento en la base menos 1, c-a-(r-1) como:

(N)r-1,c = rn – N – r-m.

• Para un número binario r = 2, su c-a-1 es

(N)1,c = 2n – N – 2-m.

Por ejemplo, si n = 5, m = 0;

(10010)1,c = 100000 – 10010 – 1= 01101 =>

(18)1,c = 32 – 18 – 1 = 13

• Cumple reglas similares a las del c-a-2 y se puede utilizarpara definir sistemas numéricos.

Page 26: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

• El c-a-1 se calcula cambiando en todos los bits 0s por1s, y 1s por 0s.

(10010) 1,c = 01101

• La definición de números se corresponde a un sistemade pesos en binario en el que el bit de más peso tieneun peso negativo del tipo –(2n – 1). Por ejemplo, para 5bits (-15 8 4 2 1)

El intervalo de números válidos es [–(2n-1 – 1), 2n-1 – 1],con dos valores para 0. Para 5 bits el intervalo estáentre:

[-15 (10000), +15 (01111)], 0 = {00000, 11111}

• Se pueden sumar números positivos y negativos comoen c-a-2 pero se necesitan dos sumas: se suman losoperandos y se añade 1 si el bit de exceso generadoes 1. Luego se requieren dos pasos en lugar de unocomo en el c-a-2.

Page 27: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Códigos binarios

• Códigos BCD.

• Códigos distancia unidad. Código Gray.

• Códigos alfanuméricos. Código ASCII.

Page 28: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Códigos BCD

• Son códigos “Binary-Coded-Decimal”. Codifican enbinario los dígitos decimales del 0 al 9. El conjunto dedatos tiene 10 elementos => se necesitan al menos 4bits.

• Los códigos BCD se usan en los circuitos digitalesque trabajan en aritmética decimal.

• Los códigos más conocidos son el NBCD (NaturalBCD) que corresponde a una codificación medianteel sistema numérico normal (pesos 8421) y elExceso-3 que se corresponde con el NBCD + 3 (0 secodifica por 3 en binario, 1 por 4, etc), aunque sepueden buscar otras codificaciones.

Page 29: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

0 0000 0011 0000 000111 0001 0100 0001 001012 0010 0101 0010 001103 0011 0110 0011 010014 0100 0111 0100 010105 0101 1000 0101 011006 0110 1001 0110 100017 0111 1010 1000 100108 1000 1011 1001 101009 1001 1100 1010 11000

NBCD EXC-3 7421 2-of-5

• Cada código tienes sus propiedades: el código NBCDpuede utilizarse casi directamente para aritméticadecimal en binario; el código EXC-3 es un códigoautocomplementado, el código que 7421 tiene el menornúmero de 1s (menor potencia disipada), el código 2-of-5tiene siempre dos 1s, luego puede servir para detectarerrores.

257 = 0010 0101 0111 NBCD0101 1000 1010 Exc-30010 0101 1000 7421

00110 01100 10010 2-of-5

Page 30: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

• En un código A de 4 bits (a3a2a1a0) con peso a cadabit de la codificación se le asigna un peso Wi (i de 0 a3). El valor decimal del dígito D puede calcularse como:

D = W3 a3 + W2 a2 + W1 a1 + W0 a0 (ai => [0, 1] )

El código NBCD es un código con peso, el Exc-3 no.

• Un código autocomplementado es aquel que se puedepasar del dígito D al dígito 9 – D (0 � 9, 1 � 8, 2 � 7,3 � 6, 4 � 5) cambiando todos sus bits. Esto es útil

para trabajar en c-a-9 en aritmética decimal. El códigoExc-3 es autocomplementado.

• Si el paso del dígito D al dígito 9 – D del código serealiza cambiando un único bit se dice que el código esreflejado.

Page 31: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Códigos distancia unidad

• Se define la distancia de Hamming (DH) entre dospalabras de un código como el número deposiciones en las que difiere el valor del bit: “0010”y “1011” difieren en el primer y en el último bit,luego su DH es 2.

• En un código distancia unidad dospalabras consecutivas del códigotienen siempre DH = 1. La últimapalabra del código también tiene quetener distancia 1 con la primera.

000 001011111110100

Page 32: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

• Los códigos distancia unidad permiten reducir laexistencia de error al tomar medidas. Si dos medidasconsecutivas difieren en más de un bit no se puedeasegurar que en algún momento no generen unresultado erróneo. En el ajuste crítico entre medidascada bit puede tomar uno de los valoresindependientemente, luego puede pasar que en laseparación entre 011 y 100 el valor sea 111, lo que esclaramente erróneo. En códigos distancia unidad estono puede pasar ya que sólo cambia 1 bit.

0 1 11 0 0

0 1 11 1 1

011

111

000

010011

001100

111110

101

Page 33: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

• Un código binario típico de distancia unidad es elcódigo Gray. Se forma “reflejando” los bits y rellenadocon un bit nuevo los códigos superiores a 0 y losinferiores a 1.

• Se puede pasar de códigobinario a Gray siguiendo elnúmero binario de derecha aizquierda: si el siguiente bit esigual al actual se pone un 0, sino un 1. Se añade un 0 a laizquierda del código binario.

0 00 11 11 0

01

0 0 00 0 10 1 10 1 01 1 01 1 11 0 11 0 0

0 00 11 11 0

BIN GRAY

(0) 0 1 1 => 0 1 0

Page 34: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Código alfanuméricos

• Los códigos alfanuméricos codifican no sólo números sino también caracteres. Uno de los más conocidos es el código ASCII en 7 bits.

‘A’ = (41)16 = 100 0001

‘a’ = (61)16 = 110 0001

‘3’ = (33)16 = 011 0011

‘>’ = (3E)16 = 011 1110

Page 35: Tema I. Sistemas Numéricos y Códigos Binariospersonales.unican.es/manzanom/EdigitalI/Apuntes/Tema_I.pdf · • Representación de números en binario mediante pesos. ... (0101)(0001)(1100)

Códigos para transmisión de datos

• Códigos para detección de error simple: se añade alcódigo original un bit de paridad, de forma que todaslas palabras del código tengan un número de bits a 10 ó par (paridad par), o impar (paridad impar). Unerror en un bit significa un error en la paridad que esdetectado al recibir el código.

nº 1s B.P. Código + B.P. nº 1s

‘A’ = 100 0001 2 0 1000001 0 2

‘a’ = 110 0001 3 1 1100001 1 4

‘3’ = 011 0011 4 0 0110011 0 4

‘>’ = 011 1110 5 1 0111110 1 6