Está en la página 1de 27

Universidad Nacional de Moreno

Índice
 Introducción
 Código Gray
 Códigos para caracteres de texto

Códigos 


Códigos BCD
Códigos para números
• Enteros
• Reales (coma flotante)
Esta guía de clase fue diseñada originalmente por el Ing. Jorge • Decimales
Sinderman. La misma fue adecuada para el dictado en la UTN
Facultad Regional Avellaneda .  Códigos detectores y correctores de errores
• Códigos de paridad
• Distancia mínima de un código
• Códigos de Hamming
Ing. Daniel Acerbi ©– Diciembre 2018 • Códigos de redundancia cíclica
1 • Dígitos verificadores 2
Ing. Daniel Acerbi © - 2018

Introducción Tabla de correspondencia del código


Un código es una representación de ciertos elementos a
través de la asignación a cada uno de ellos de una  Es la tabla que especifica, para cada uno de
combinación determinada de símbolos (combinación
llamada palabra del código), elegidos dentro de un juego
los elementos que el código representa, cuál
permitido de símbolos (juego denominado alfabeto del es la palabra que lo hace. Es el equivalente
código). al diccionario del código
Ejemplos de código son:
• el código postal  Por ejemplo, en el código Morse, la tabla de
• código QR (quick response) correspondencia empieza así:
• el código Morse
• el CUIL A
• el idioma castellano
• los números de cuenta bancarios
B
• el GTIN-13 de los productos en los supermercados etc.
• el ISBN de los libros
3 Ing. Daniel Acerbi © - 2018

Ing. Daniel Acerbi © 1


Algunas definiciones Códigos binarios, en bloque (n bits) y
 códigos binarios son aquellos en que el alfabeto del biunívocos
código lo integran los dígitos binarios, es decir, el 0 y el
1. O, en términos más generales, aquellos en los que el  Pueden representar a 2n elementos distintos .
alfabeto tiene sólo dos elementos. Esto incluye al Morse  Donde n es el numero de bits de la palabra .
y al Braille
 códigos de bloque son aquellos en que las distintas  Hay correspondencia entre ambas columnas de la
palabras tienen todas el mismo número de símbolos. No tabla . Código binario Cada palabra esta
es el caso, por ejemplo, del código Morse, pero sí del formada por 2 bits y
0 00 cada bit vale 0 o 1 y
CUIL (11 dígitos decimales) o el GTIN-13 (13 dígitos estos valores son el
decimales). Cantidad máxima de
1 10 alfabeto del código
palabras del código
 códigos biunívocos son aquellos para los que a cada binarios es 2n; donde n
elemento a representar le corresponde una única es el números de bits de 2 11 Palabras
palabra de código (no hay sinónimos), y a cada palabra la palabra
del código le corresponde un único elemento (no hay 3 01
polisemia, es decir, múltiples significados). Este código binarios es
biunívoco y de bloque
Ing. Daniel Acerbi © - 2018
5 Ing. Daniel Acerbi © - 2018
6

Códigos binarios pesados Distancia de un código


 Son códigos en los que cada columna tiene
asignado un valor determinado, a dicho Código binario pesado  La distancia de un código es la cantidad de bits que
valor se lo denomina peso . cambia entre palabras consecutivas del mismo.
En este caso particular los pesos son CBA
 También se analiza la cantidad de bits que varían
potencia de 2n; por ejemplo :
4 21 Pesos entre la ultima y la 1er. combinación
1= 20
2= 21 0 000  Distancia Mínima o Distancia de Hamming :
4= 22 1 001 Es la menor de las distancias del código
 Los pesos de las columnas se pueden 2 010 0+2+0=2
repetir . 0 00
3 011 1bit En este ejemplo la
 Los pesos pueden ser valores negativos .
distancia de Hamming
 Con referencia a los pesos este tipo de 4 100 1 10 es de 1 bit
código guarda relación directa con el 5 101
4+0+1=5 1bit
Sistema de Numeración Binario que vimos 1bit
2 11
anteriormente 6 110
7 111 4+2+1=7 1bit
3 01

Ing. Daniel Acerbi © - 2018 Ing. Daniel Acerbi © - 2018

Ing. Daniel Acerbi © 2


Códigos binarios estandarizados Codificador absoluto de ángulos
 Los códigos de cambio único (continuos y cíclicos). C2 C1
 Los códigos para representar los números cuadrante b1 b0 b0
decimales ( BCD ). 1 0 0 b1

 Los códigos para representar los caracteres de 2 0 1


texto. 3 1 0
 Los códigos para representar los números enteros. 4 1 1
 Los códigos detectores y correctores de errores.
C3 C4

Fronteras en las que un defecto de alineación de los palpadores podrían producir


una salida totalmente errónea, debido al cambio de 2 bits al pasar de un sector al
otro (son posibles 00, 01, 10 y 11), dos de ellas aceptables (según el caso) y las
otras dos inaceptables. Por ejemplo, entre el 2º y el 3er cuadrante, 01 y 10
serían aceptables, pero 00 y 11 no.
Ing. Daniel Acerbi © - 2018
9 Ing. Daniel Acerbi © - 2018
10

El código Gray como código cíclico El código Gray como binario reflejado
En el sistema binario, Binario Gray
cada vez que se agota la 0 0
cuadrante b1 b0 C2 C1 capacidad de representación con 1 1
10 11
n bits, se incorpora un 1 a la
1 0 0 b0
b1 izquierda y se repite la secuencia 11 10
100 110
de los n bits a la derecha.
2 0 1 101 111
110 101
3 1 1 En Gray,
cada vez que se agota la
111 100
1000 1100
4 1 0 C4
capacidad de representación con 1001 1101
C3 n bits, se incorpora un 1 a la 1010 1111
izquierda y se repite pero 1011 1110
Código continuo es aquel cuyas palabras consecutivas difieren en un invertida (como reflejada en un 1100 1010
único bit espejo) la secuencia de los n bits 1101 1011
Código cíclico es aquel código continuo cuya primer palabra difiere en a la derecha. 1110 1001
1111 1000
un único bit de la última
Ing. Daniel Acerbi © - 2018
11 Ing. Daniel Acerbi © - 2018

Ing. Daniel Acerbi © 3


Conversión de binario a Gray Conversión de Gray a binario
Gi = Bi ⊕ Bi+1 Bi = Gi ⊕ Bi+1

Binario Gray
10101110 11111001
+ + + + + +
11111001 10101110
Gray Binario

Ing. Daniel Acerbi © - 2018


13 Ing. Daniel Acerbi © - 2018
14

Binario Gray
0 0000
Ejemplo de Código Gray de 10 palabras
Simetría en el 1
10
0001
0011
 Partimos de un código binario pesado de 16 palabras.
código Gray 11 0010  Armamos por el método “espejo” un código Gray de
16 palabras.
100 0110
Dada la lista de las primeras 101 0111  Para obtener este código Gray de 10 palabras, debo
2n palabras del código Gray, 110 0101 eliminar 6 palabras, para ello podemos hacer 2 cosas:
las ubicadas simétricamente 111 0100 – O elimino simétricamente 3 palabras de arriba y 3 de abajo.
respecto al eje central, sólo 1000 1100 – O elimino simétricamente las 6 del centro.
difieren en 1 bit. 1001 1101  Se debe tener en cuenta que no puede haber Códigos
1010 1111 Gray de cantidad impar de combinaciones.
Por la propiedad indicada en 1011 1110
el párrafo anterior armaremos 1100 1010
dos códigos Gray de 10 1101 1011
combinaciones 1110 1001
1111 1000
Ing. Daniel Acerbi © - 2018
15 Ing. Daniel Acerbi © - 2018

Ing. Daniel Acerbi © 4


Generación del Código Gray de 10 palabras
Códigos Cíclicos
Código 2
Código 1  La sucesión de las 2n palabras Gray que se
pueden formar con n bits es cíclica
 Es cíclica cualquier sucesión que surja de la
anterior eliminando simétricamente palabras
centrales o extremas (permite un código cíclico
de cualquier número par de elementos)
 Con este método es imposible realizar un código
cíclico de un número impar de elementos
 Los códigos cíclicos no son pesados

Ing. Daniel Acerbi © - 2018 Ing. Daniel Acerbi © - 2018


18

Código Johnson Códigos para caracteres de texto


 El código Johnson es un 0 00000
 También llamados códigos alfanuméricos
código cíclico, no pesado y
1 00001
 Deberían representar a
se utiliza para comandar Cantidad de  Las letras del alfabeto en mayúsculas
2 00011
secuencias de control y en palabras >  Las letras del alfabeto en minúsculas (algunos códigos
3 00111
señalamiento luminoso . 2x5 = 10; no las incluyen)
donde 5 son 4 01111  Las 10 cifras decimales (0 al 9)
 La cantidad de palabras se los bits de
calcula como 2.n, donde n cada 5 11111  Signos de puntuación como , . ; : ? ! “

es el numero de bits de la palabra del 6 11110  Signos matemáticos como + - = / ( ) [ ] { } > <
código  Signos especiales como $ % * @ # & \ _ ~ |
palabra . 7 11100
8 11000  Son más de 64 caracteres y menos de 128, por
9 10000
lo que el código debería tener, al menos, 7 bits.

Ing. Daniel Acerbi © - 2018 Ing. Daniel Acerbi © - 2018


20

Ing. Daniel Acerbi © 5


Códigos normalizados para caracteres ASCII (7 bits)
de texto b6b5b4 000 001 010 011 100 101 110 111
b3b2b1b0
 BCDIC (6 bits, usado por IBM, no incluía las letras 0000 NUL DLE SP 0 @ P ` p
minúsculas) 0001 SOH DC1 ! 1 A Q a q
 EBCDIC (8 bits, usado por IBM) 0010 STX DC2 " 2 B R b r
 Hollerith (12 bits, usado en las tarjetas perforadas) 0011 ETX DC3 # 3 C S c s
0100 EOT DC4 $ 4 D T d t
 Baudot (5 bits, usado en Telex, no incluía las letras
minúsculas, no era biunívoco) 0101 ENQ NAK % 5 E U e u
0110 ACK SYN & 6 F V f v
 ASCII (7 bits, pensado para el inglés pero utilizable
0111 BEL ETB ' 7 G W g w
con limitaciones en otros idiomas europeos)
1000 BS CAN ( 8 H X h x
 ASCII extendido (8 bits, usado en las PC, con 1001 HT EM ) 9 I Y i y
variantes según el idioma )
1010 LF SUB * : J Z j z
 ISO 8859 (8 bits, de aceptación internacional pero 1011 VT ESC + ; K [ k {
con variantes según el idioma) 1100 FF FS , < L \ l |
 Unicode (internacional multilenguaje) 1101 CR GS - = M ] m }
21
1110 SO RS . > N ^ n ~
Ing. Daniel Acerbi © - 2018
1111 SI US Ing. /Daniel Acerbi? © - 2018O _ o DEL

Características del código ASCII ASCII extendidos (8 bits)


 Incluye caracteres no imprimibles, pero que afectan la
impresión, tales como: 0 ASCII
 SP (espacio)
 BS (retroceso de un espacio)
 LF (alimentación de línea) 1bit 7 bits
 CR (retorno de carro, el que no implica una nueva línea)
 Incluye caracteres de control, tales como: 1 Otros 128 caracteres
 ACK (recibido OK)
 NAK (recibido con error) Codepages
 STX (comienzo del texto)
 ETX (fin del texto)
 BEL (sonido de timbre)
• 437 tradicional del DOS
 No incluye caracteres de texto usuales en idiomas distintos • 850 europeo occidental (DOS)
del inglés. Así, para otros lenguajes Europeos occidentales
se requerirían, en adición:
 Vocales acentuadas (acentos grave, agudo y circunflejo) • 858 parecida a la 850 (sale la ı y entra el €)
 Diéresis, ñ, ç, œ, ¿, ¡
Ing. Daniel Acerbi © - 2018
23 • 1252 windows europeo occidental Ing. Daniel Acerbi © - 2018
24

Ing. Daniel Acerbi © 6


Ingreso de caracteres en una PC
ASCII extendidos (8 bits) usando el teclado numérico
 Si se mantiene presionada la tecla Alt de la PC y se
ingresa un número decimal por el teclado numérico,
aparece en pantalla el carácter cuyo código en binario se
corresponde con el número decimal ingresado
• Si el número decimal es 127 o menor, se usa el código ASCII
• Si el número decimal es mayor que 127 (y menor que 256) y no
se le coloca como primer dígito un 0, se usa el código que emplea
el DOS (usualmente el codepage 850 u 858)
• Si el número decimal es mayor que 127 (y menor que 256) y se
le coloca como primer dígito un 0, se usa el código que emplea el
Windows (usualmente el codepage 1252)
 Ejemplos
• Alt 64  @
• Alt 233  Ú
• Alt 0233  é
0 ASCII 1 Otros 128 caracteres
Ing. Daniel Acerbi © - 2018 Ing. Daniel Acerbi © - 2018
26

Representación de los números Código BCD Natural


decimales Los dígitos del 0 al 9 se corresponden con los
b3 b2 b1 b0
binarios respectivos expresados con 4 bits
 Códigos BCD (Decimal codificado en binario o 8 4 2 1
Es pesado. Es decir, el número representado
Binary Coded Decimal) 0 0 0 0 0
iguala a la suma de los pesos de las columnas
1 0 0 0 1
 Cada dígito decimal se codifica 2 0 0 1 0
que en la palabra respectiva están en 1. Sus
pesos son 8421
independientemente, y de acuerdo al código 3 0 0 1 1
Ej. 6=4+2
adoptado con, por lo menos, 4 bits 4 0 1 0 0
5 0 1 0 1 Suele llamarse también código 8421 en razón
• BCD Natural
6 0 1 1 0 de sus pesos
• BCD Aiken
7 0 1 1 1 Ejemplo: el 718 se representa como:
• BCD Exceso 3
8 1 0 0 0 0111 0001 1000
• 2 de 5 9 1 0 0 1
• 7 segmentos Es muy utilizado en electrónica e informática
• Bicuinario
Ing. Daniel Acerbi © - 2018
27 Ing. Daniel Acerbi © - 2018
28

Ing. Daniel Acerbi © 7


Código BCD Aiken Código BCD Exceso 3 (XS3)
b3 b2 b1 b0 Dada la lista de números binarios del 0 al 15 b3 b2 b1 b0 Dada la lista de números binarios del 0 al 15
2 4 2 1 expresados con 4 bits (0000 al 1111), los dígitos expresados con 4 bits (0000 al 1111), los
8 4 2 1
del 0 al 4 se corresponden con los primeros 5 dígitos se corresponden con los 10 números
0 0 0 0 0 0 0 0 1 1
números de esa lista (del 0000 al 0100) y los centrales de esa lista (del 0011 al 1100),
1 0 0 0 1 dígitos 5 al 9 con los 5 últimos (1011 al 1111) 1 0 1 0 0 descartando los primeros 3 y los últimos 3.
2 0 0 1 0 2 0 1 0 1
Es pesado, aunque con pesos curiosos: 2421 Podemos decir que es pesado, con pesos
3 0 0 1 1 3 0 1 1 0 8421, pero con un exceso de 3 que debe ser
4 0 1 0 0 Ej. 5=2+2+1
4 0 1 1 1 descontado
5 1 0 1 1 Es autocomplementario, es decir, para hallar el 5 1 0 0 0 Ej. 6=8+1-3
6 1 1 0 0 complemento a 9 de un dígito basta cambiar
6 1 0 0 1
7 1 1 0 1 todos los bits Es autocomplementario, es decir, para hallar
7 1 0 1 0
8 1 1 1 0
el complemento a 9 de un dígito basta
Simplifica la resta de números decimales 8 1 0 1 1 cambiar todos los bits
9 1 1 1 1 9 1 1 0 0
Simplifica la resta de números decimales

Ing. Daniel Acerbi © - 2018


29 Ing. Daniel Acerbi © - 2018
30

Código 2 de 5 Código Postal


b4 b3 b2 b1 b0 No es pesado. Los falsos pesos indicados
(74210) son sólo a los efectos de recordar
7 4 2 1 0
el código, y se observa que fallan para el 0 7 4 2 1 0
0 1 1 0 0 0
1 0 0 0 1 1 Es capaz de detectar un bit en error, pues
si al transcribirlo aparecen un único 1 o tres 1
2 0 0 1 0 1
de ellos, señal que hubo algún error. 4
3 0 0 1 1 0
Es un código detector de error o
4 0 1 0 0 1 2
autoverificador.
5 0 1 0 1 0
8
6 0 1 1 0 0 Útil cuando la probabilidad de introducir 1
error es baja y los errores son
7 1 0 0 0 1
independientes entre sí, lo que hace que la
8 1 0 0 1 0
probabilidad de que se presente más de 1
9 1 0 1 0 0 bit en error es despreciable

Ing. Daniel Acerbi © - 2018


31 Ing. Daniel Acerbi © - 2018
32

Ing. Daniel Acerbi © 8


Código 7 segmentos Código Bicuinario
Es muy utilizado
N Q0 Q3 Q2 Q1 por los CI 7490 y
b6 b5 b4 b3 b2 b1 b0 0 0 0 0 0 74390; que son
contadores
a b c d e f g 1 0 0 0 1 asincrónicos
0 1 1 1 1 1 1 0 2 0 0 1 0
1 0 1 1 0 0 0 0 3 0 0 1 1
2 1 1 0 1 1 0 1 4 0 1 0 0
3 1 1 1 1 0 0 1
5 1 0 0 0
4 0 1 1 0 0 1 1
6 1 0 0 1
5 1 0 1 1 0 1 1
7 1 0 1 0
6 x 0 1 1 1 1 1 X=0ó1
7 1 1 1 0 0 x 0 indistintamente
8 1 0 1 1
8 1 1 1 1 1 1 1
9 1 1 0 0
9 1 1 1 x 0 1 1

Ing. Daniel Acerbi © - 2018


33 Ing. Daniel Acerbi © - 2018
34

Representación de los enteros binarios


Representación de los números
Representan números signados

 Naturales ⇒ Magnitudes (naturales + el 0) n bits


 Enteros ⇒ Enteros 2n números representables
 Racionales ⇒ caso particular de los reales 2n-1-1 números positivos (del 1 al 2n-1-1)
2n-1-1 números negativos ( del -1 al -2n-1-1 )
 Reales ⇒ Punto flotante El 0
 Complejos ⇒ par de reales Total 2n-1 números representados
¡Sobra una combinación!
Según el código, la combinación sobrante se usa para:
•Tener una doble representación del 0
•Representar un número negativo más: (el - 2n-1)
Ing. Daniel Acerbi © - 2018
35 Ing. Daniel Acerbi © - 2018
36

Ing. Daniel Acerbi © 9


Codificación de los número enteros Complemento a 2
 Los números se representan utilizando los n bits
disponibles:
 Signo y magnitud (de uso muy poco
El bit mas significativo indica el signo del numero
frecuente) 0=Números positivos; 1= Números negativos
 Complemento a 2
 en el caso de números positivos, tal cual su magnitud
 Complemento a 1 (ya fuera de uso)
expresada en n bits .
 Binario desplazado (o con exceso)  en el caso de números negativos, como el
complemento a 2 de su magnitud
Magnitud (si ≥0)
Comp. a 2 de la magnitud (si ≤0)
n bits
Ing. Daniel Acerbi © - 2018
37 38
Ing. Daniel Acerbi © - 2018

Número Codificación
Ejemplo de Ca2 Tabla de + 111 0111
+ 110 0110
correspondencia + 101 0101
 Usamos 4 bits para la representación del código + 100 0100 2n-1-1
+ 11 0011
El signo forma parte del Complemento a 2, + 10 0010
numero
Los números positivos se representan
con 4 bits +1 0001
 +2 = 0010 tal cual la magnitud 0 0000
-1 1111
Representa el Signo Magnitud 2 → 0010 - 10 1110
- 11 1101
Los números negativos se representan por - 100 1100
 -2 = 1110 el Ca2 de la magnitud - 101 1011
2n-1

El bit mas significativo representa el signo : - 110 1010


0 → positivo - 111 1001
1 → negativo - 1000 1000
Ing. Daniel Acerbi © - 2018 Ing. Daniel Acerbi © - 2018
40

Ing. Daniel Acerbi © 10


Circunferencia numérica para números
Características del Código Ca2 enteros en complemento a 2
 Tiene una única representación del 0 (todos los bits en 0, 0
ya se le considere positivo o negativo) 000
 Permite representar desde el –2n-1 hasta el 2n-1-1 (la -1 +1
111 001
combinación sobrante se usa para representar un
número negativo más)
 Dificulta las operaciones de multiplicar y dividir
 Las reglas para sumar y restar:
 son simples -2 110 010 +2
 son las mismas reglas operativas que para sumar y
restar magnitudes, aunque cambia el criterio de
validez del resultado
 La comparación se dificulta un poco porque un negativo 101 011
parece mayor que un positivo. -3 +3
100
41 Discontinuidad 42
Ing. Daniel Acerbi © - 2018
Ing. Daniel Acerbi © - 2018 -4

Binario desplazado o con exceso Ejemplo de binario desplazado


Los números se representan por la
magnitud que resulta de sumarles 2n-1 (valor  Usamos 4 bits para la representación
denominado desplazamiento o exceso)  Bd = N+2n-1 ; donde N es el numero y n es el
numero de bits

N+2n-1  +2 = 1010 +2 + 24-1 = +2 + 8 = 10 1010

n bits N= numero a convertir Convertir a binario

La norma carece de representación de bit de signo.


 -2 = 0110 -2 + 24-1 = -2 + 8 = 6 0110
La norma carece de representación de bit de signo.

Ing. Daniel Acerbi © - 2018


43 Ing. Daniel Acerbi © - 2018

Ing. Daniel Acerbi © 11


Número Codificación
Tabla de + 111 1111 Características del BD
+ 110 1110
correspondencia + 101 1101
 Permite representar desde el –2n-1 hasta el 2n-1-1
+ 100 1100
del código Binario + 11 1011
(igual que el complemento a 2).
 Tiene una sola representación del 0.
desplazado, con 4 + 10 1010  Dificulta las operaciones de multiplicar y dividir
+1 1001  La comparación se facilita porque sigue las mismas
bits 0 1000 reglas que para comparar magnitudes.
-1 0111  La palabra que corresponde a un número es casi la
- 10 0111 misma que en el código complemento a 2, sólo
- 11 0101 difiriendo en el bit más significativo que es diferente
en ambos códigos.
- 100 0100  La suma y la resta son bastante simples, pero no se
- 101 0011 utilizan .
- 110 0010
- 111 0001
Ing. Daniel Acerbi © - 2018
- 1000 0000 45 Ing. Daniel Acerbi © - 2018

Universidad Nacional de Moreno


Suma de números enteros representados en el
código complemento a 2
1) Las palabras correspondientes a ambos números se
Suma y resta de suman cual si fuesen magnitudes.
2) Ignorar el posible acarreo. El resultado es correcto a
números signados menos que se presente un desborde (V < Overflow),
el que se reconoce cuando se suman dos números
de igual signo y el resultado tiene signo contrario.
Para comprobar estas reglas consideraremos tres casos
• Suma de dos números positivos
• Suma de dos números negativos
• Suma de dos números de distinto signo

Ing. Daniel Acerbi © - 2018


48

Ing. Daniel Acerbi © 12


Desborde, Overflow (V) Suma de dos números enteros positivos
 Desborde es la imposibilidad de representar el resultado de una
operación de suma o resta entre números enteros representados 1) Las palabras correspondientes a ambos números se
en el código Complemento a 2, por caer el mismo fuera del suman cual si fuesen magnitudes.
rango del código. 2) Ignorar el posible acarreo. El resultado es correcto a
 La situación de desborde se reconoce porque el signo del menos que se presente un desborde, el que se
resultado no es el esperado. reconoce cuando se suman dos números de igual
signo y el resultado tiene signo contrario
Caso de la suma Caso de la resta 0011 0011
+ + + = + + - - = + + 0010 + 0110
0101 V = 0 1001 desborde V = 1
+ + - = + o - + - + = + o -
 La primera cuenta es (+3)+(+2)=+5 lo que es correcto
= o
 La segunda cuenta es (+3)+(+6) que debió dar +9, pero
- + + = + o - - - + + -
este valor cae fuera del rango del código, por lo que era
esperable el desborde (dio -7)
- + - = - - - + = -
Ing. Daniel Acerbi © - 2018 Ing. Daniel Acerbi © - 2018
50

Suma de números enteros


Suma de dos números enteros negativos
de distinto signo
1) Las palabras correspondientes a ambos números se 1) Las palabras correspondientes a ambos números se
suman cual si fuesen magnitudes. suman cual si fuesen magnitudes.
2) Ignorar el posible acarreo. El resultado es correcto a 2) Ignorar el posible acarreo. El resultado es correcto a
menos que se presente un desborde, el que se menos que se presente un desborde, el que se
reconoce cuando se suman dos números de igual reconoce cuando se suman dos números de igual
signo y el resultado tiene signo contrario signo y el resultado tiene signo contrario
1100 1100 1100 1100
+ 1110 + 1010 + 0010 + 0111
1010 V = 0 0110 desborde V = 1 1110 V = 0 0011 V=0
 La primera cuenta es (-4)+(-2)=-6 lo que es correcto  La primera cuenta es (-4)+(2)=-2 lo que es correcto
 La segunda cuenta es (-4)+(-6) que debió dar -10 pero  La segunda cuenta es (-4)+(+7)=+3 lo que es correcto
este valor cae fuera del rango del código, por lo que era  La suma de dos números de distinto signo nunca desborda
esperable el desborde (dio +6)
Ing. Daniel Acerbi © - 2018
51 Ing. Daniel Acerbi © - 2018
52

Ing. Daniel Acerbi © 13


Introducción a la resta de números enteros Resta de números enteros representados en el
representados en Complemento a 2 código Complemento a 2
1) En lugar de restar se puede sumar al minuendo el 1) Las palabras correspondientes a ambos
sustraendo cambiado de signo. números se restan cual si fuesen magnitudes
2) Este cambio de signo se realiza efectuando el (por ejemplo, sumando al minuendo el
complemento a 2 del sustraendo complemento a 2 del sustraendo)
3) De la suma, ignorar el posible acarreo. El resultado es
correcto a menos que se presente un desborde, el que 2) Ignorar el posible acarreo. El resultado es
se reconoce cuando el signo del resultado no coincide correcto a menos que se presente un desborde,
con el esperado. Es decir, cuando se restan dos el que se reconoce cuando se restan dos
números de distinto signo y el resultado no tiene el números de distinto signo y el resultado no
signo del minuendo tiene el signo del minuendo
4) Resta considerar un caso particular, el del -2n-1 que Para comprobar estas reglas consideraremos 3 casos
se representa con un 1 seguido de n-1 ceros, que • Resta de dos números positivos
cuando se complementa a 2 no cambia de signo. Sin • Resta de dos números negativos
embargo, puede demostrarse que los pasos anteriores • Resta de dos números de distinto signo
también llegan a un resultado correcto en este caso
particular. Más adelante volveremos sobre este punto.
Ing. Daniel Acerbi © - 2018
53 Ing. Daniel Acerbi © - 2018
54

Resta de dos números positivos Resta de dos números negativos


1) Las palabras correspondientes a ambos
números se restan cual si fuesen magnitudes 1) Las palabras correspondientes a ambos
(por ejemplo, sumando al minuendo el números se restan cual si fuesen magnitudes
complemento a 2 del sustraendo) (por ejemplo, sumando al minuendo el
2) Ignorar el posible acarreo. El resultado es complemento a 2 del sustraendo)
correcto a menos que se presente un desborde, 2) Ignorar el posible acarreo. El resultado es
el que se reconoce cuando se restan dos correcto a menos que se presente un desborde,
números de distinto signo y el resultado no el que se reconoce cuando se restan dos
tiene el signo del minuendo números de distinto signo y el resultado no
tiene el signo del minuendo
En el caso de restarse dos números positivos, hay una
cancelación parcial entre ellos y el resultado (ya sea En el caso de restarse dos números negativos, habrá
positivo o negativo) será siempre correcto una cancelación parcial entre ellos y el resultado (ya
sea positivo o negativo) será siempre correcto

Ing. Daniel Acerbi © - 2018


55 Ing. Daniel Acerbi © - 2018
56

Ing. Daniel Acerbi © 14


Resta de dos números de distinto signo Resta de dos números de distinto signo (a)
1) Las palabras correspondientes a ambos números se 1) Las palabras correspondientes a ambos números se
restan cual si fuesen magnitudes (por ejemplo, restan cual si fuesen magnitudes (por ejemplo,
sumando al minuendo el complemento a 2 del sumando al minuendo el complemento a 2 del
sustraendo) sustraendo)
2) Ignorar el posible acarreo. El resultado es correcto a 2) Ignorar el posible acarreo. El resultado es correcto a
menos que se presente un desborde, el que se menos que se presente un desborde, el que se
reconoce cuando se restan dos números de distinto reconoce cuando se restan dos números de distinto
signo y el resultado no tiene el signo del minuendo signo y el resultado no tiene el signo del minuendo
1110 equivalente a 1110 1110 equivalente a 1110
- 0101 +1011 - 0111 +1001
1001 V = 0 0111 V=1

Correcto, no hubo desborde, porque se han restado Desborde, porque se han restado dos números de
dos números de distinto signo y el signo del resultado distinto signo y el signo del resultado no coincide con
coincide con el del minuendo el del minuendo

Ing. Daniel Acerbi © - 2018


57 Ing. Daniel Acerbi © - 2018
58

Resta de dos números de distinto signo (b)


Regla alternativa para la resta
1) Las palabras correspondientes a ambos números se
restan cual si fuesen magnitudes (por ejemplo, 1) Las palabras correspondientes a ambos números se
sumando al minuendo el complemento a 2 del restan, cual si fuesen magnitudes, sumando al
sustraendo) minuendo el complemento a 1 del sustraendo más 1.
2) Ignorar el posible acarreo. El resultado es correcto a 2) Ignorar el posible acarreo. El resultado es correcto a
menos que se presente un desborde, el que se menos que la suma desborde.
reconoce cuando se restan dos números de distinto
signo y el resultado no tiene el signo del minuendo Este procedimiento alternativo tiene dos ventajas:
1110 equivalente a 1110 a) es formalmente válido inclusive para el -2n-1 (que al
- 0111 + 1001 complementarse a 1 se transforma en el +2n-1-1).
0111 V = 1 b) Simplifica la determinación del desborde, pues la
resta desborda cuando lo hace la suma.
Desborde, porque se han restado dos números de
distinto signo y el signo del resultado no coincide con
el del minuendo

Ing. Daniel Acerbi © - 2018


59 Ing. Daniel Acerbi © - 2018
60

Ing. Daniel Acerbi © 15


Universidad Nacional de Moreno
Errores
 Los sistemas electrónicos son capaces, al procesar una
información binaria, de introducir errores en ella .
Códigos Detectores y  Los errores más habituales ocurren en los procesos de
transmisión/recepción y de
Correctores de errores almacenamiento/recuperación.

 Supondremos que la probabilidad p de introducir un


error en un bit en una palabra, es muy baja

 Supondremos, en un principio, que los errores son


independientes. Con lo que la probabilidad de que haya
2 bits en error en una palabra es del orden de p2 y la
consideraremos insignificante

Ing. Daniel Acerbi © - 2018


62

Modificación de un dato en la transmisión Códigos de Paridad


por el Ruido Eléctrico
 Se denominan códigos de paridad a aquellos códigos binarios
cuyas palabras tienen todas, o bien un número par de unos, o
un número impar de unos.
 Ejemplo de código de paridad par: el 2 de 5
 En los códigos de paridad la distancia de Hamming es igual a 2
 Un código de paridad tiene capacidad para reconocer un error
de 1 bit en una palabra, porque en ese caso (sea que un 0 se
transformó en un 1 o viceversa) se deja de cumplir la paridad.
 Todo código se transforma en un código de paridad si a cada
El Ruido Eléctrico, modifica el bit D (sale u “0”, llega un “1”)
una de sus palabras se le agrega un bit adicional elegido de
manera que todas ellas tengan un número par o un número
impar de unos. Ese bit se denomina bit de paridad.

Ing. Daniel Acerbi © - 2018 Ing. Daniel Acerbi © - 2018


64

Ing. Daniel Acerbi © 16


Bit de paridad Ejemplos de códigos de paridad
 Bit de paridad par o PE (parity even)
Bit de paridad impar o PO (parity odd)

 Ejemplo de bit de paridad par colocado en el lugar del bit más
 Los datos corresponden a palabras de un código
significativo en el código ASCII binario de 3 bits .
• 01011001
• 10100101 C B A PE C B A PO
 El bit de paridad par puede calcularse como la suma módulo 2 de 0 0 0 0
todos los bits de la palabra que se quiere proteger. Por ejemplo 0 0 0 1
para el código ASCII, cuya palabra es de la forma 0 0 1 1 0 0 1 0
b6 b5 b4 b3 b2 b1 b0 0 1 0 1 0 1 0 0
resulta: 0 1 1 0 0 1 1 1
PE=b6⊕b5⊕b4⊕b3⊕b2⊕b1⊕b0 1 0 0 1 1 0 0 0
 El eventual bit de paridad impar, sería el bit opuesto, es decir:
1 0 1 0 1 0 1 1
PO=1-PE 1 1 0 0
 En una transmisión de información, el transmisor debe generar el 1 1 0 1
bit de paridad y enviarlo junto con la palabra a proteger. 1 1 1 1 1 1 1 0

65
Paridad Par (Even) Paridad Impar (Odd)
Ing. Daniel Acerbi © - 2018 Ing. Daniel Acerbi © - 2018

Ejemplo de uso de paridad par con el


Síndrome de error
código binario de 4 bits
 En una transmisión, el receptor debe verificar si la
GPP = D⊕ C⊕B ⊕A V=dPP = D⊕ C⊕B ⊕A ⊕ GPP
palabra ha llegado con la polaridad correcta o, de lo
contrario, se ha producido error.
 El síndrome de error es la señal que indica, cuando vale transmisor
0, que no hubo error. Y cuando vale 1, que lo hubo.
 Tratándose de paridad par, el síndrome de error valdrá
0 si en el conjunto de los bits de información recibido y
el bit de paridad que los acompaña hay un número par
de unos, y valdrá 0 si ese número es impar.
 Para el caso de una palabra ASCII con paridad par,
tendremos
S=PE⊕b6⊕b5⊕b4⊕b3⊕b2⊕b1⊕b0 El Ruido Eléctrico, Se trasmiten los 5 bits, V o dpp (o dpi) si:
modifica el bit D (sale u siendo la Pp (o PI) el bit “0” dato llego correcto
“0”, llega un “1”) menos significativo “1” dato llego incorrecto
Ing. Daniel Acerbi © - 2018
67 Ing. Daniel Acerbi © - 2018
68

Ing. Daniel Acerbi © 17


Códigos de Hamming Implementación de un código de
(distancia mínima 3) Hamming
Sea un cierto código al que se quiere transformar en otro de distancia
Un código de distancia mínima 3 puede ser 
mínima 3, agregándole apropiadamente bits de paridad
usado:  Sea que el número de bits de información es I. Por ejemplo, 4
 La 1ª regla de Hamming establece que se necesitará un número P de
• En un sistema en que sólo puede haber un bit bits de paridad que satisfaga la expresión:
en error, para corregirlo 2P ≥ P+I+1
En nuestro ejemplo, P=3
• En un sistema en que puede haber hasta 2 bits 
 La 2ª regla de Hamming establece que cada bit de paridad debe
en error, para detectarlo asociarse a un subconjunto de los bits de información tal que:
 Cada bit de información esté asociado, por lo menos, a 2 bits de
paridad (es decir, que pertenezca al menos a dos subconjuntos)
 Que no haya 2 bits de información que pertenezcan exactamente a
los mismos subconjuntos (pero sí puede un bit integrar todos los
conjuntos de que forma parte otro bit, si además forma parte de al
menos otro conjunto).
Ing. Daniel Acerbi © - 2018
69 Ing. Daniel Acerbi © - 2018
70

Matriz de generación
Selección de los subconjuntos
 Los subconjuntos pueden visualizarse mejor en la llamada matriz de
generación
 Sigamos con nuestro ejemplo (I=4 y P=3) y  La segunda regla de Hamming puede reformularse diciendo que no puede
supongamos paridad par tener dos columnas iguales (lo que fuerza a que las columnas
 el bit de paridad P1 se asociará con los bits de correspondientes a los bits de información tengan al menos dos unos,
información I1, I3 e I4. (P1=I1 ⊕ I3 ⊕ I4) para distinguirse de la de los bits de paridad).
 Nótese que cualquier bit que se reciba errado afectará la paridad de
 el bit de paridad P2 se asociará con los bits de ciertos subconjuntos que le son propios.
información I1, I2 e I3. (P2=I1 ⊕ I2 ⊕ I3)  Un error en I2 afectará a los subconjuntos 2 y 3 pero no al 1
 el bit de paridad P3 se asociará con los bits de  Un error en I3 afectará a todos los subconjuntos
información I2, I3 e I4. (P3=I2 ⊕ I3 ⊕ I4)  Un error en P2 sólo afectará al subconjunto 2
 El transmisor genera los 3 bits de paridad y los envía
I1 I2 I3 I4 P1 P2 P3
acompañando a los 4 bits de información
1 0 1 1 1 0 0
1 1 1 0 0 1 0
Ing. Daniel Acerbi © - 2018
71
Ing. Daniel Acerbi © - 2018
0 1 1 1 0 0 1 72

Ing. Daniel Acerbi © 18


Síndrome de error Ejemplo 1
 El receptor calcula el síndrome de error para los
distintos subconjuntos, usando la misma matriz de  Bits de información 1001
generación que el transmisor
 Bits de paridad calculados 011
 S1=P1 ⊕ I1 ⊕ I3 ⊕ I4
 S2=P2 ⊕ I1 ⊕ I2 ⊕ I3  Bits transmitidos 1001011
 S3=P3 ⊕ I2 ⊕ I3 ⊕ I4  Bits recibidos 1000011
 De acuerdo al síndrome de error, y observando la matriz  Síndrome de error calculado 101
de generación, identifica al bit errado y lo corrige.
 Bit errado I4
 Información corregida 1001

Ing. Daniel Acerbi © - 2018


73 Ing. Daniel Acerbi © - 2018
74

Ejemplo 2 Ejemplo 3
 Bits de información 1001  Bits de información 1001
 Bits de paridad calculados 011  Bits de paridad calculados 011
 Bits transmitidos 1001011  Bits transmitidos 1001011
 Bits recibidos 1001011  Bits recibidos 1001010
 Síndrome de error calculado 000  Síndrome de error calculado 001
 No hubo error  Bit errado P3
 Información correcta 1001

Ing. Daniel Acerbi © - 2018


75 Ing. Daniel Acerbi © - 2018
76

Ing. Daniel Acerbi © 19


Ejemplo de uso de código de Hamming
con el código binario de 4 bits
Distancia mínima 4
Se trasmiten los
11 bits, siendo  La distancia mínima 4 es interesante cuando la
los bits de probabilidad de que haya un bit en error es baja y se
paridad los desea corregirlo, pero la probabilidad de que haya dos
menos bits en error no puede despreciarse, y se desea
significativo.
Se trasmites 7
detecta esa situación.
bits de  Un código de Hamming de distancia mínima 3 puede
información mas fácilmente ser modificado para tener distancia mínima
4bits de paridad; 4, para lo que se debe agregar un bit de paridad
total 11 bits
adicional, cuyo subconjunto sea tal que todos los bits
de información pertenezcan a un número impar de
subconjuntos

Ing. Daniel Acerbi © - 2018 Ing. Daniel Acerbi © - 2018


78

Ejemplo de distancia mínima 4 Resumen


 En el caso de la matriz de generación de la figura, un error simple
produce un síndrome de error con un número impar de 1s que permite
identificar al bit errado Un código que opera en un sistema donde puede haber
 Un error doble produce un síndrome de error con un número par de 1s hasta n bits en error:
(sólo en aquellos conjuntos en los que interviene sólo uno de los bits
errados), lo que no permite corregirlo pues puede provenir de diversas Puede corregirlos a todos (c=n) si tiene una distancia
causas. mínima de 2c+1
 Por ejemplo, el síndrome 1010 puede deberse a: Puede detectarlos a todos (d=n) si tiene una distancia
 Error en P1 y P3 mínima de d+1
 Error en I4 y P4 I1 I2 I3 I4 P1 P2 P3 P4 Puede corregir los errores pequeños (c<n) y detectar
 Error en I3 y P2 los otros si tiene una distancia mínima de c+n+1 (o
1 0 1 1 1 0 0 0
 Error en I1 e I2 2c+d+1, donde d=n-c) son los bits adicionales en
1 1 1 0 0 1 0 0 error que exceden los c bits que puede corregir si los
0 1 1 1 0 0 1 0 bits en error no superan ese valor.
Por ejemplo, si puede haber hasta 5 bits en error
1 1 0 1 0 0 0 1 (n=5), si se quieren corregir los errores de hasta 2
bits (c=2) y sólo detectar los restantes casos (d=3), la
distancia mínima debe ser 8 (2+5+1 ó 2×2+3+1)
Ing. Daniel Acerbi © - 2018
79 Ing. Daniel Acerbi © - 2018
80

Ing. Daniel Acerbi © 20


Introducción al Chequeo de
Errores no independientes Redundancia cíclica
 Un bloque de información binaria puede ser interpretado como un
polinomio, cuyos coeficientes son los valores de los sucesivos bits que
forman el bloque, comenzando por el coeficiente correspondiente al
 Hay casos de errores en ráfagas debidos a una término de mayor grado.
causa común Así, por ejemplo, el bloque 10100011 puede ser representado por el
polinomio X7+ X5+X+1, donde X es una variable ficticia que se emplea a
Un disturbio eléctrico en una transmisión los fines de esta representación.
Una zona dañada en un material magnético  En una transmisión, se adosará al bloque de información ciertos bits
redundantes. El conjunto de ambos es el vector a transmitir, el que debe
 Se usan códigos detectores de errores para ser un polinomio divisible por otro polinomio fijo, convenido entre el
transmisor y el receptor, llamado polinomio generador.
proteger bloques enteros de información (por  El vector recibido debe ser verificado por el receptor para comprobar
ejemplo, centenares de palabras) y no palabras que es divisible por el polinomio generador. De comprobarse esto, el
receptor retirará los bits redundantes y se quedará con el bloque de
individuales información correcto. De lo contrario, señalará la ocurrencia de algún
Chequeo bidimensional error.
 Al conjunto de bits redundantes adosados al bloque de información se lo
Suma de comprobación (check sum) denomina en castellano chequeo de redundancia cíclica, y en inglés
Chequeo de redundancia cíclica (CRC) Cyclic Redundancy Check, lo que ha motivado el amplio uso de la sigla
CRC para referirse a ellos.
Ing. Daniel Acerbi © - 2018
81 Ing. Daniel Acerbi © - 2018
82

Algunos polinomios generadores


Polinomios generadores normalizados
 El número de bits del CRC es igual al grado del polinomio
generador  CRC-16 X16+X15+X2+1
 Cuanto mayor es el grado del polinomio generador, mejor Usa un CRC de 16 bits, y detecta todos los errores simples,
es el desempeño de código en cuanto a detectar los dobles, triples y en ráfagas de hasta 16 bits, y el 99,998%
posibles errores. de los errores en ráfagas de mayor longitud
 Los polinomios generadores se han estudiado de manera
de determinar los de mejor desempeño y adoptarlos como  CRC-CCITT X16+X12+X5+1
normalizados. De desempeño similar al anterior
 En general, se desea que un polinomio de grado k detecte  CRC-32
todos los errores en ráfagas de hasta k bits, y la gran
mayoría de los errores en ráfagas de tamaño mayor. Los X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1
polinomios usuales sólo dejan de reconocer el 100×2-k% Usa un CRC de 32 bits, y detecta todos los errores simples,
del total de errores posibles. Por ejemplo, un polinomio de dobles, triples y en ráfagas de hasta 32 bits, y el
grado 8 adecuado, que usa un CRC de 8 bits, puede
reconocer el 99,6% de los errores. 99,99999998% de los errores en ráfagas de más de 32 bits.

Ing. Daniel Acerbi © - 2018


83 Ing. Daniel Acerbi © - 2018
84

Ing. Daniel Acerbi © 21


Suma de polinomios División de polinomios
en el campo a Galois en el campo a Galois
La suma (y la resta, que es lo mismo) de La división de polinomios se hace de la misma
manera que en el álgebra corriente, pero cada
polinomios, se hace sumando (en módulo coeficiente se determina en módulo 2.
2) los términos de igual grado. Ejemplo: X3+X+1 ÷ X3+X2+1

1011 1101
X7+X5+X+1 10100011 1101 1
0110
+ X5+X4+X + 110010
X7+X4+1 10010001 Resultado 1, resto X2+X

Ing. Daniel Acerbi © - 2018


85 Ing. Daniel Acerbi © - 2018
86

Ejemplo de aplicación del CRC


Otro ejemplo de división
• Supongamos realizar una transmisión, que
comprobaremos empleando CRC, del siguiente (y
X10+X8+X4+X3+1 ÷ X3+X2+1
minúsculo) bloque de información
10100011001 1101 10100011 (X7+X5+X+1)
1101 11010001
01110 • Se conviene entre transmisor y receptor emplear el
1101 siguiente polinomio generador (por sencillez, de
001101 grado muy inferior a los habituales):
1101
00001001 X3+X2+1
1101
0100
• En esas condiciones, las tareas a cargo del
transmisor y el receptor son las siguientes:
Resultado X7+X6+X4+1, con resto X2
Ing. Daniel Acerbi © - 2018
87 Ing. Daniel Acerbi © - 2018
88

Ing. Daniel Acerbi © 22


Funciones del transmisor (1) Funciones del transmisor (2)
1) Agrega al bloque de información tantos ceros 2) Divide el polinomio ampliado por el polinomio
como grado k tenga el polinomio generador. generador, observando el correspondiente resto
(de grado k-1 y, por lo tanto, con k
Esto prepara un campo de k bits, coeficientes). A este resto se lo denomina CRC.
momentáneamente en cero, para los bits
redundantes, y es equivalente a multiplicar el En nuestro caso resulta, según la cuenta que
polinomio correspondiente al bloque de sigue, un CRC igual a X2+1
información por Xk.
10100011000 1101
1101 11010001
En nuestro caso, con un polinomio generador de 01110
grado 3, el polinomio así ampliado resulta: 1101
001101
X10+X8+X4+X3 1101
00001000
1101
0101
Ing. Daniel Acerbi © - 2018
89 Ing. Daniel Acerbi © - 2018 90

Funciones del transmisor (3)


Funciones del receptor
3) Resta en módulo 2 (es decir, suma) el CRC al
polinomio ampliado con los k ceros para que el Divide el vector recibido por el polinomio
polinomio así modificado sea divisible por el generador, y entonces:
polinomio generador. Dado que los últimos bits
de este polinomio estaban en 0 y reservados • si el resto es nulo, suprime los últimos k bits
para insertar este CRC, esta operación es del vector para recuperar el bloque de
equivalente a adosar a continuación del bloque
de información los k bits correspondientes al información original
CRC. El conjunto de bits resultante es el vector • si el resto no es nulo, señala la ocurrencia de
a transmitir. error.
En nuestro caso, el vector trasmitido es:

10100011101 (X10+X8+X4+X3+X2+1)
Ing. Daniel Acerbi © - 2018
91 Ing. Daniel Acerbi © - 2018
92

Ing. Daniel Acerbi © 23


Dígitos verificadores Otro ejemplo: ISBN-13
 Usado en los códigos cuyo alfabeto son los dígitos  Es un caso particular del GTIN-13 del “país” Bookland
decimales, en forma análoga al bit de paridad en  D13 a D1. Este último es el dígito verificador
los códigos binarios.  (D13+D11+D9+D7+D5+D3+D1)+
• ISBN / ISSN
• CUIL / CUIT +3(D12+D10+D8+D6+D4+D2)
• Cuentas bancarias debe ser divisible por 10
• Etc.  El prefijo (D13D12D11) correspondiente a Bookland es el 978 (pero
el 979 está previsto para futuras expansiones)
 Ejemplo: el CUIL tiene 11 dígitos numerados D11 a
 El prefijo Argentina en el GTIN-13 es el 779
D1. Este último es el dígito verificador, el que es  El prefijo en el ISSN-13 es el 977
elegido de manera que sea múltiplo de 11 el
polinomio:
5D11+4D10+3D9+2D8+7D7+6D6+5D5+4D4+3D3+2D2+D1

Ing. Daniel Acerbi © - 2018


93 Ing. Daniel Acerbi © - 2018
94

Universidad Nacional de Moreno


Codificación de los números en punto
(coma) flotante
Sg M × Bexp
Representación de los donde:
• Sg es el signo del número, es decir + o -
números reales • M es la llamada mantisa del número
• B es la base del sistema de numeración
Punto flotante empleado
• exp es el exponente (un número entero)
• M × Bexp es la magnitud del número

Ing. Daniel Acerbi © - 2018


96

Ing. Daniel Acerbi © 24


Números flotantes binarios Formato de la palabra
normalizados  Se requiere 1 bit para codificar el signo del
número
 Nos limitaremos a estudiar los números en
punto flotante en base 2  Se requiere una cierta cantidad de bits para
 Para evitar múltiples representaciones de un codificar el exponente entero. Cuanto más
mismo número, vamos a considerar grande sea este número de bits, se obtendrán
normalizados los números cuyas mantisas exponentes más extremos, es decir, mayor
tienen como parte entera un 1 rango.
Es decir ± 1,F × 2exp  Se requiere una cierta cantidad de bits para
Donde F es la fracción que sigue a la coma codificar la fracción (técnica del 1 oculto).
Cuanto más grande sea ese número de bits, se
representarán los números con una mayor
97
precisión. 98
Ing. Daniel Acerbi © - 2018 Ing. Daniel Acerbi © - 2018

Ejemplo de formato de palabra Estudio del código propuesto


S E F
 El valor mínimo de la mantisa (M=1,F) es 1 (F=0)
 El valor máximo de la mantisa es casi 2 porque la
 La palabra es de 32 bits distribuidos de la siguiente fracción llega a ser casi 1 (F=0,111111….1111).
manera: Exactamente es 2- 2-23≈2.
• 1 bit para el signo
• 8 bits para el exponente entero representado en binario  El valor mínimo del exponente es -128 (E=0)
desplazado en 128 unidades  El valor máximo del exponente es +127 (E=255)
• 23 bits para la fracción
 El número más grande que se puede representar es
 S es el signo (0=+;1=-) aproximadamente 2×2+127=2+128
 E=exp+128
 El número positivo más chico que se puede representar
 F es la fracción es 2-128
 El número resulta:
 No se puede representar el 0
(-1)S×1,F×2E-128  No se puede representar el ∞
Ing. Daniel Acerbi © - 2018
99 Ing. Daniel Acerbi © - 2018
100

Ing. Daniel Acerbi © 25


Standard IEEE 754 de 32 bits Norma IEEE; casos en que E≠0
Parte del código que hemos presentado y lo modifica  E=255
como sigue: • Si F=0 representa al más/menos infinito (según el
• El desplazamiento del exponente lo reduce a 127 unidades signo)
• Reserva en el campo E el valor 0 para los números • Si F≠0 representa un NAN
desnormalizados y el 0
• Reserva en el campo E el valor 255 para el infinito (con  1≤E ≤ 254 es el caso de los números normalizados
F=0) y para cosas que no son un número (NAN), por ±1,F×2E-127
ejemplo 0×∞ (con F≠0) • El máximo número positivo normalizado, ahora es
• Define que números menores que el mínimo número aproximadamente
normalizado (incluso el 0) pueden representarse en forma 2×2254-127=2128 (igual que antes)
desnormalizada, en la que la parte entera de la mantisa es
0. Esto se logra a expensas de la precisión, que en los • El mínimo número positivo normalizado, ahora es
desnormalizados es menor que la de los normalizados por 21-127=2-126 (antes era 2-128)
tener menos cifras significativas.
• El valor mínimo representable en forma normalizada ha
aumentado en un factor 4, pero ahora se podrán
representar números mucho más pequeños en forma
101 desnormalizada. 102
Ing. Daniel Acerbi © - 2018 Ing. Daniel Acerbi © - 2018

Norma IEEE; caso en que E=0 Norma IEEE; caso en que E=0
Corresponde a los números desnormalizados, La máxima mantisa de un desnormalizado es
caracterizados por: 0,111111…111, es decir casi 1, y con un exponente
• ser utilizados para representar los números apropiado debe ser apenas inferior al mínimo
más pequeños normalizado que es 2-126
• tener su mantisa una parte entera nula • El exponente fijo de los desnormalizados es
• tener un exponente fijo, de valor tal que el -126
máximo número desnormalizado sea apenas • Los desnormalizados son, entonces, de la forma
inferior al mínimo normalizado ±0,F×2-126
• tener como caso particular el 0, que • La fórmula anterior, cuando F=0, corresponde al
corresponde a F=0 número 0

Ing. Daniel Acerbi © - 2018


103 Ing. Daniel Acerbi © - 2018
104

Ing. Daniel Acerbi © 26


Ejemplo 1 Ejemplo 2
¿Cómo se representa en el código IEEE de 32 bits el número binario - ¿Cómo se representa en el código IEEE de 32 bits el número binario
1100,1? +0,000000101 ?

Al número solicitado, para llevarlo a forma normalizada, se le debe Al número solicitado, para llevarlo a forma normalizada, se le debe
correr la coma tres lugares a la izquierda, quedando con: correr la coma siete lugares a la derecha, quedando con:
• signo - • signo +
• exponente +3 • exponente -7
• mantisa 1,1001 • mantisa 1,01

Entonces resulta que: Entonces resulta que:


• el bit de signo es un 1. • el bit de signo es un 0.
• el exponente se debe representar por +3 desplazado en 127 unidades, • el exponente se debe representar por -7 desplazado en 127 unidades,
es decir por la magnitud 130, que en binario y con 8 bits se escribe es decir por la magnitud 120, que en binario y con 8 bits se escribe
10000010. 01111000.
• la fracción, luego de suprimir el 1 oculto y agregar a la derecha los • la fracción, luego de suprimir el 1 oculto y agregar a la derecha los
ceros necesarios para completar los 23 bits, queda ceros necesarios para completar los 23 bits, queda
10010000000000000000000 01000000000000000000000
Es decir que la palabra que representa al -1100,1 es Es decir que la palabra que representa al +0,000000101 es
11000001010010000000000000000000 105 00111100001000000000000000000000 106
Ing. Daniel Acerbi © - 2018 Ing. Daniel Acerbi © - 2018

Ejemplo 3 Universidad Nacional de Moreno

¿A que número representa en el código IEEE de 32 bits la palabra


00000000000001100000000000000000?

El número buscado:
• Es positivo
• Es desnormalizado (E=0), por lo que su exponente es -126
• Su mantisa es 0,000011 (no hay 1 oculto)
• Si se corre la coma 6 lugares a la derecha, quedan:
Fin de la presentación
• la mantisa binaria, en 11 (es decir, 3 en decimal)
• el exponente en -132
Códigos
Es decir que la palabra dada representa al 3×2-132

Ing. Daniel Acerbi © - 2018


107

Ing. Daniel Acerbi © 27

También podría gustarte