Download Diapositiva 1 - WordPress.com

Document related concepts

Código binario wikipedia , lookup

Representación de números con signo wikipedia , lookup

Operador a nivel de bits wikipedia , lookup

Precisión simple en coma flotante wikipedia , lookup

Bit wikipedia , lookup

Transcript
Diseño Digital una Rapsodia
M.I Eduardo Ramírez Sánchez
Temario
Introducción, Sistemas numéricos
y Códigos
Digital vs. Analógico
+5
+5
1
0
1
V
V
Time
–5
Digital:
solo asume valores discretos
Ti me
–5
Analógico:
valores que varían sobre un amplio
rango continuamente
¿Qué queremos decir con ”Digital”?
• Señal Digital
Señal que puede tener uno de un
conjunto finito de posibles valores.
Contando Dedos
Dedos={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
• Señal Analógica
Temperatura
Infinidad de Posibilidades
Señal que puede tener uno de un
conjunto infinito de posibles valores.
¿Qué es un ”Sistema Digital”?
Sistema Digital
- Sistema que acepta entradas digitales y genera
salidas digitales.
- Ejemplo: Computadoras
• Entradas digitales: letras y números del teclado.
• Salidas digitales: números nuevos o letras que
se almacenarán en un archivo o que se
mostraran en la pantalla.
- Existen muchos otros sistemas digitales:
• Teléfonos celulares, control de motores de
automóvil, decodificadores de TV, instrumentos
musicales, reproductores de DVD, cámaras
digitales, reconocimiento de huellas digitales,
etc.
¿Qué es un ”Sistema Digital”?
Componentes Digitales
Circuitos Digitales
• Una conexión de componentes digitales
que en conjunto componen un sistema
digital.
Circuito Digitales
Señal Digital con solo 2 valores
posibles – Binario
• Representados típicamente por 1’s y 0’s.
• Un digito binario es un bit.
• Solo vamos a considerar señales
digitales binarias.
Sistemas Digitales
Bits, bytes, nibbles y tamaño de palabra
A un solo número binario (ya sea el 0 o el 1) se le
conoce como bit. Bit es la abreviatura de binary digit.
El bit es la unidad de datos más pequeña de un
sistema digital. Físicamente, en un circuito digital, a un
solo bit se le representa mediante un voltaje Alto o
Bajo.
Todos los dispositivos digitales, aún los más sencillos,
manejan grupos de datos muy grandes que se les
denominan tamaño de palabra, estas palabras pueden
ser por ejemplo 8, 16, 32, 64 bits etc. Un fragmento de
16 bits de datos sele conoce con el nombre de
palabra. Una palabra doble tiene 32 bits, mientras que
una palabra cuádruple tiene 64 bits.
Representación de la Información
• Bit (Digito Binario)
– 0y1
– Representa falso y verdadero en logica
– Representa estados bajo y alto en dispositivos
electrónicos
• Otras Unidades
– Byte: 8 bits
– Nibble: 4 bits
– Word: Multiplos del byte (ejem: 1 byte, 2 bytes, 4
bytes, 8 bytes, etc.), dependiendo de la arquitectura
del sistema
•
•
•
•
•
•
•
•
•
Un byte es un grupo de 8 bits de datos que representa un número, una
letra, un signo de puntuación, un carácter de control, un código de
operación de un dispositivo digital o algún otra cosa.
Un nibble es el equivalente de medio byte o un grupo de datos de 4 bits.
En resumen
Bit
1 bit (un 0 o un 1)
Nibble
4 bits (ej. 1010)
Byte
8 bits (ej. 1110 1011)
Palabra
16 bits (ej. 1111 0000 1100 1101)
Palabra doble
32 bits (ej. 1100 0001 1111 1100 1110 0011 1011 1110)
Palabra cuádruple 64 (ej. 0001 0011 0011 1110 0010 0000 0000 11011001
1110 0001 0110 1100 0001 0011 1000)
Representación de la información
• N bits pueden representar hasta 2N valores.
– Ejemplos:
• 2 bits  representan hasta 4 valores (00, 01, 10, 11)
• 3 bits  rep. hasta 8 valores (000, 001, 010, …, 110, 111)
• 4 bits  rep. hasta 16 valores (0000, 0001, 0010, …., 1111)
• Para representar M valores, log2M bits son requeridos.
– Ejemplos:
•
•
•
•
•
32 valores  requiere 5 bits
64 valores  requiere 6 bits
1024 valores  requiere 10 bits
40 values  cuantos bits?
100 values  cuantos bits?
Digitalización
El mundo es generalmente analógico.
• Muchos sistemas digitales convierten señales analógicas en
señales digitales.
• Muchas aplicaciones cambian al usar implementaciones digitales:
− Casete → MP3
− VHS → DVD
Beneficios de la Digitalización
Las señales analógicas (ejem. audio)
pueden perder calidad.
• Los voltajes no se
guardan/copian/transmiten
perfectamente.
• La versión digitalizada permite un
guardar/copiar/transmitir casi
perfecto.
• Una “muestra” de voltaje en un
rango particular se guarda usando
codificación de bits.
• Aún así los niveles de voltaje no
se conservan perfectamente.
• Pero se pueden distinguir por 1’s y
0’s.
Beneficios de la Digitalización
• Al digitalizar audio se puede comprimir
− e. g. MP3’s
− Un CD puede almacenar 20 canciones sin comprimir
pero 200 comprimidas.
• La compresión también puede realizarse a imágenes (jpeg),
películas (mpeg) y otros.
• La digitalización también tiene muchos otros beneficios.
¿Cómo Podemos Codificar Datos
Binarios Para Nuestro Sistema Digital?
• Algunas entradas esencialmente
binarias.
− Botones: sin presionar (0),
presionado (1).
− Algunas entradas
esencialmente digitales.
• Solo se necesita codificar en binario.
− e. g. multi-botón de entrada:
codificación rojo=001, azul=010,
etc.
• Algunas entradas analógicas.
− Es necesario un convertidor
analógico-a-digital.
− Como se hizo en la diapositiva
anterior: muestra y codificación
con bits.
Códigos Alfanuméricos
• Representan números y caracteres
alfabéticos.
– También representan otros caracteres tales
como símbolos y varias instrucciones
necesarias para transmitír información.
• El código alfanumérico ASCII es el más
común .
– ASCII = American Standard Code for
Information Interchange
ASCII
• ASCII tiene 128 caracteres y símbolos
representados por un código binario
de 7-bit .
– puede ser considerado un código de 8-bit con
el MSB siempre 0. (00h-7Fh)
• 00h-1Fh (los primeros 32) – caracteres de control
• 20h-7Fh – símbolos gráficos (pueden desplegarse o
ser impresos)
Cómo Codificar Texto: ASCII
• ASCII: 7 (u 8) bits de
codificación por cada letra,
número o símbolo.
Tabla
ASCII
http://ascii-table.com/img/table.gif
ASCII Extendido
• Existen 128 caracteres adicionales que
fueron adoptados por IBM para uso en sus
PCs. Es popular y es usado en otras
aplicaciones diferentes a las PCs  es un
estandard no oficial.
– Los caracteres extendidos ASCII están
representados por un código serial de 8-bit de
80h-FFh
Tabla ASCII
Extendido
http://ascii-table.com/img/table-pc.gif
Unicode
• Unicode: Codificación de 16 bits,
cuya popularidad va en aumento.
−Codifica caracteres de
diferentes partes del mundo.
Sistema Decimal (Base 10)
• Un sistema numérico (peso-posicion)
– La base o radix es 10 (la base o radix de un sistema numérico
es el número total de simbolos/digitos permitidos en el sistema)
– Simbolos/digitos = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
– La posición es importante, como el valor de cada simbolo/digito
es dependiente en su tipo y su posición en el número
– Ejemplo, el 9 en los dos números mostrados abajo tienen
diferentes valores:
• (7594)10 = (7 × 103) + (5 × 102) + (9 × 101) + (4 × 100)
• (912)10 = (9 × 102) + (1 × 101) + (2 × 100)
– En general,
(anan-1… a0 . f1f2 … fm)10 =
(an x 10n) + (an-1x10n-1) + … + (a0 x 100) +
(f1 x 10-1) + (f2 x 10-2) + … + (fm x 10-m)
Sistema Decimal (Base 10)
• Factores de Peso (o pesos) son en potencias de 10:
… 103 102 101 100 . 10-1 10-2 10-3 …
• Para evaluar el número decimal 593.68, el dígito en
cada posición es multiplicado por el correspondiente
peso:
5102 + 9101 + 3100 + 610-1 + 810-2
= (593.68)10
Otros Sistemas Numéricos
• Binario (base 2)
Pesos en potencias de 2
Dígitos Binarios (bits): 0, 1
• Octal (base 8)
Pesos en potencias de 8
Dígitos Octal: 0, 1, 2, 3, 4, 5, 6, 7.
• Hexadecimal (base 16)
Pesos en potencias de 16
Dígitos Hexadecimal : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
• Base/radix R:
Pesos en potencias de R
Conversión Decimal a Binario
• Método
– Método Repetir División-por-2 (para números
enteros)
– Método Repetir Multiplicación-por-2 (para fracciones)
División Repetida-por-2
 Para convertir un número entero a binario, use división
sucesiva por 2 hasta que el cosiente sea 0. El residuo
forma la respuesta, con el primer residuo como el bit
menos significativo (LSB) y el último como el bit más
significativo (MSB).
(43)10 = (101011)2
2 43
2 21 rem 1  LSB
2 10 rem 1
2 5 rem 0
2 2 rem 1
2 1 rem 0
0 rem 1  MSB
Convirtiendo Números Decimales a Binarios:
Método de División
• Divide el número decimal
entre 2 y el residuo se inserta
al número binario.
− Continua dividiendo el
cociente entre 2 hasta
que sea igual 0.
− Ejemplo: convertir 12 en
binario.
Multiplicación Repetida-por-2
 Para convertir fracciones decimales a binarias, se usa
repetir multiplicación por 2, hasta que el producto
fraccional sea 0 (o hasta el número deseado de lugares
decimales ). Los digitos acarreados, o carry, producen
la respuesta, con el primer carry como el MSB, y el
último como el LSB.
(0.3125)10 = (.0101)2
0.31252=0.625
0.6252=1.25
0.252=0.50
0.52=1.00
carry
0
1
0
1
MSB
LSB
Conversión Entre Decimal y Otras
Bases
 Base-R a decimal: multiplique dígitos con su
correspondientes pesos.
 Decimal a binario (base 2)
Números Enteros repita division-por-2
Fracciones: repita multiplicación-´por-2
 Decimal a base-R
Números Enteros: repita división-por-R
Fracciones: repita multiplicación-por-R
Conversión Entre Bases
• En general, la conversión entre bases puede ser
hecha via decimal:
Base-2
Base-3
Base-4
…
Base-R

Decimal
Base-2
Base-3
Base-4
….
Base-R
Atajos para la conversión entre bases 2, 4, 8, 16
Conversión Binario a Octal/Hexdecimal
• Binario  Octal: partición en grupos de 3
– (10 111 011 001 . 101 110)2 =
• Octal  Binario: reversa
– (2731.56)8 =
• Binario  Hexadecimal: partición en grupos de
4
– (101 1101 1001 . 1011 1000)2 =
• Hexadecimal  Binario: reversa
– (5D9.B8)16 =
Base-R a Conversión Decimal
1101.1012 = 123 + 122 + 120 + 12-1 + 12-3
572.68
=
2A.816
=
341.245 =

Base Dieciséis: Otra Base Utilizada en
Ocasiones por Diseñadores Digitales
• Muy práctica, ya que cada posición
representa 4 posiciones de la base 2.
− Es usada como un método
compacto para escribir números
binarios.
• Es conocida como hexadecimal o
solo hex
Códigos Decimales
• Los números decimales son favorecidos por los humanos.
Los números binarios son naturales a las computadoras.
Así que se requiere una conversión.
• Si un pequeño cálculo es requerido, se puede usar un
esquema de codificación para almacenar números
decimales, para propósitos de transmisión de datos.
• Ejemplos: BCD (o 8421), Exceso en-3, 84-2-1, 2421, etc.
• Cada dígito decimal esta representado como un código de
4-bit.
• El número de dígitos en un código es también llamado la
longitud del código.
Código decimal binario (BCD)
• Algúnos códigos usados,
como 1010BCD, 1011BCD, …
1111BCD. Éstos codigos son
considerados como errores.
• Fáciles de convertir, pero las
operaciones aritméticas are
más complicadas.
• Disponibles para interfaces
tales como teclados.
Decimal
digit
BCD
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
Código decimal binario (BCD)
• Ejemplos de conversión entre valores BCD y valores
decimales:
–
–
–
–
(234)10 = (0010 0011 0100)BCD
(7093)10 = (0111 0000 1001 0011)BCD
(1000 0110)BCD = (86)10
(1001 0100 0111 0010)BCD = (9472)10
• Note que BCD no equivale a binario
– Ejemplo: (234)10 = (11101010)2
Otros Códigos Decimales
Decimal Digit
0
1
2
3
4
5
6
7
8
9
BCD
8421
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
Excess-3
84-2-1
2*421
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
0000
0111
0110
0101
0100
1011
1010
1001
1000
1111
0000
0001
0010
0011
0100
1011
1100
1101
1110
1111
Biquinary
5043210
0100001
0100010
0100100
0101000
0110000
1000001
1000010
1000100
1001000
1010000
Código autocomplementado: códigos para dígitos
complementarios son también complementarios
entre uno y otro.
• Código para corrección de errores: codigo biquinario
(bi=two, quinario=five).
Códigos auto-complementados
• Los códigos representan el par de dígitos
complementarios son también complementarios el uno
con el otro.
0: 0011
• Ejemplo: Código exceso en-3
1: 0100
2:
3:
4:
5:
6:
7:
8:
9:

0101
0110
0111
1000
1001
1010
1011
1100
Pregunta: ¿Cuales son los otros códigos autocomplementados?
El Código Gray
• El código Gray es un código no pesado y
no és un código aritmético .
– No existe un peso específico asignado a la
posición de sus bit.
• Importante: el código Gray muestra solo
un cambio en un bit de la palabra del
código a la siguiente de la secuencia.
– Esta propiedad es importante en muchas
aplicaciones.
El Código Gray
Decimal Binario
Código
Gray
Decimal Binario
Código
Gray
0
1
0000
0001
0000
0001
8
9
1000
1001
1100
1101
2
3
4
5
0010
0011
0100
0101
0011
0010
0110
0111
10
11
12
13
1010
1011
1100
1101
1111
1110
1010
1011
6
0110
0101
14
1110
1001
7
0111
0100
15
1111
1000
El Código Gray
• Conversión de código Binario a Gray
– El MSB en el código Gray es el mismo que
corresponde al MSB en el número binario.
– Moviendose de de izquierda a derecha, sume
cada par adyacente de los bits del código
binario para obtener el siguiente bit del código
Gray code bit. Discard carries.
eje: convertir 101102 a código Gray
1 + 0 + 1 + 1 + 0 binary
1 1 1 0 1 Gray
El Código Gray
• Conversion de Código Gray a Binario
– El MSB en el código Binario es el mismo que
corresponde al MSB en el código Gray.
– Sume cada bit del código binario generado a
el bit del código Gray en la siguiente posición
adyacente. Quite los acarreos.
eje: convierta la palabra del código Gray 11011
a binario
1 1 0 1 1 Gray
+ + + +
1 0 0 1 0 Binary
Código Gray
sensores
sensores
no
alineados
Código Binario: 111  110  000
sensores no
alineados
Código Gray: 111  101
El Código Gray - Aplicaciones
Bit 0
Bit 1
Bit 2
Bit 3
Detección de Errores
• Los errores pueden ocurrir durante la
transmision de datos. Éstos deberán ser
detectados, para que se pueda solicitar la
retransmisión.
• Con los números binarios, usualmente ocurre
un error en un solo bit.
– Ejemplo: 0010 erroneamente transmitido como 0011
o 0000 o 0110 o 1010.
• El código Biquinario tiene una longitud de 7;
éste usa 3 bits adicionales para la detección de
errores.
Detección de errores
• Bit de paridad
– Paridad par: un bit
adicional es anadido
para hacer un total de
numeros 1’s pares.
– Paridad impar: un bit
adicional es añadido
para hacer un numero
total 1’s impares.
• Ejemplo de paridad
impar en valores ASCII
.
Character
0
1
...
9
:
A
B
...
Z
[
\
ASCII Code
0110000 1
0110001 0
...
0111001 1
0111010 1
1000001 1
1000010 1
...
1011010 1
1011011 0
1011100 1
Bits de
paridad
Detección de errores
• El bit de Paridad puede
detectar un numero impar de
errores pero no un numero
par de errors.
– Ejemplo: Asuma paridad
impar,
• 10011  10001 (detectado)
• 10011  10101 (no detectado)
0110 1
0001 0
1011 0
1111 1
1001 1
0101 0
• Los bits de Paridad pueden
Columna paridadaconsejada
tambien ser apliecados a un
Renglon-paridadbloque de datos.
aconsejada
Detección de errores
• Algunas veces, no es suficiente detectar el error
. Sino tambien corregir el error.
• Corregir el error cuesta caro. En la practica, se
puede usar solo la correccion de un solo bit.
• Tecnica popular: Codigo de Hamming
Corrección de errores
• Dado un codigo de 3-bit C1
{ 000, 110, 011, 101 }
• Con 4 palabras codificadas, se necesitan
actualmente solo 2 bits.
– Se llamara a esto k, el numero de bits del mensaje
original.
• Para añadir la habilidad de deteccion/correccion de
error, se usan mas bit de los necesarios.
– En este caso, la longitud de cada palabra-codificada es 3
• Se define eficiencia de codigo (o tasa) por
k / longitud de palabra-codificada
• Asi, eficiencia de C1 es 2/3.
Corrección de errores
• Dado este codigo de 3-bit C1
{ 000, 110, 011, 101 }
• Puede C1 detectar un solo bit de error?
• Puede C1 corregir un solo bit de error?
Algunas veces, nosotros usamos “1 error” para “ un
solo bit de error”, “2 errores” para “2 bits de error”, etc.
Corrección de errores
• La distancia d entre cualquier de dos palabras
de un codigo es la suma de el numero de
diferencias entre las palabras-codificadas.
– Ejemplo: d(000, 110) = 2; d(0110,1011) = 3.
• La distancia Hamming  de un codigo es la
distancia minima entre cualquier de dos
palabras en el codigo.
– Ejemplo: La distancia Hamming de C1 es 2.
• Un codigo con distancia Hamming de 2 puede
detectar 1 error.
Correccion de errores
• Dado este código de 6-bit C2
{ 000000, 111000, 001110, 110011 }
• Cual es su eficiencia?
• Cual es su distancia de Hamming?
• Puede corregir 1 error?


Puede corregir 2 errores?
Corrección de errores
Autoestudio
• Codigo de Hamming: un código popular para
corrección de code
• Procedimiento
– Los bits de paridad estan en las posiciones que son
potencias de 2 (1, 2, 4, 8, 16, …)
– Las otras posiciones son bits de datos
– Cada bit de paridad checa alguno de los bits de datos
•
•
•
•
Posicion 1: Checa 1 bit, salta 1 bit (1, 3, 5, 7, 9, 11, …)
Posicion 2: Checa 2 bits, salta 2 bits (2, 3, 6, 7, 10, 11, …)
Posicion 4: Checa 4 bits, salta 4 bits (4-7, 12-15, 20-23, …)
Posicion 8: Checa 8 bits, salta 8 bits (8-15, 24-31, 40-47, …)
– Se pone el bit de paridad de acuerdo tal que el numero
total de 1s en las posiciones su cheque sea par.
Corrección de errores
• Ejemplo: Dato 10011010
• Insertar posiciones para bits de paridad:
__1_001_1010
–
–
–
–
Posicion 1: ? _ 1 _ 0 0 1 _ 1 0 1 0  entonces ? debe ser 0
Posicion 2: 0 ? 1 _ 0 0 1 _ 1 0 1 0  entonces ? debe ser 1
Posicion 4: 0 1 1 ? 0 0 1 _ 1 0 1 0  entonces ? debe ser 1
Posicion 8: 0 1 1 1 0 0 1 ? 1 0 1 0  entonces? debe ser 0
Respuesta: 0 1 1 1 0 0 1 0 1 0 1 0
Correccion de errores
Auto-estudio
• Supongase 1 error ocurrido y el dato recibido
es:
011100101110
• ¿Como determinar cual bit es el error?
• Checar cuales bits de paridad estan en el error.
– Respuesta: bits de paridad 2 y 8.
• Sume las posiciones de estos bits de paridad
erroneos
– Respuesta: 2 + 8 = 10. Asi el bit de dato 10 es el
error.
Dato corregido: 0 1 1 1 0 0 1 0 1 0 1 0
Números Negativos
Números no Signados: únicamente valores no
negativos.
Números Signados: incluye todos los valores
(positivos y negativos)
Existen 3 representaciones comunes para
números binarios signados:
Signo y Magnitud
Complemento a 1s
Complemento a 2s
Signo y Magnitud
• El signo es representado por un ‘bit de signo’
– 0 for +
– 1 for -
• Ejem: un 1-bit de signo y formato de magnitud de
7-bit
signo


magnitud
00110100  +1101002 = +5210
10010011  -100112 = -1910
Signo y Magnitud
• El valor mayor:
• El valor menor:
• Ceros:
01111111 = +12710
11111111 = -12710
00000000 = +010
10000000 = -010
• Rango: -12710 to +12710
• Pregunta:
– Para una representación de una magnitud signada y de
n-bit, ¿cual es el rango de valores que pueden ser
representados?
Signo y Magnitud
• Para negar un número, solamente invierta el bit
de signo.
• Ejemplos:
– Como negar 00100001sm (decimal 33)?
Contestación: 10100001sm (decimal -33)
– Como negar 10000101sm (decimal -5)?
Contestación: 00000101sm (decimal +5)
Complemento a 1s
Dado un número x el cual puede ser expresado como un
número binario de n-bit, su valor negado puede obtenerse
representandolo en complemento a 1s usando:
-x = 2n – x – 1
• Ejemplo: Con un número de 8-bit 00001100 (o 1210), su
valor negado expresado en complemento a 1s es:
-000011002 = 28 – 12 – 1 (calculado en decimal)
= 243
= 111100111s
(Esto significa que -1210 es escrito como 11110011 en –
representación de complemento a 1s.)
Complemento a 1s
• Técnica esencial para negar un valor: invierta
todos los bits.
• El valor mayor:
01111111 = +12710
• El valor menor:
10000000 = -12710
• Ceros:
00000000 = +010
11111111 = -010
• Rango: -12710 to +12710
• El bit más significantivo (el de más a la
izquierda) aún representa el signo: 0 para
positivo; 1 para negativo.
Complemento a 1s
• Ejemplos (asumiendo números de 8-bit):
(14)10 = (00001110)2 = (00001110)1s
-(14)10 = -(00001110)2 = (11110001)1s
-(80)10 = -( ? )2 = ( ? )1s
Complemento a 2s
• Dado un número x el cual puede ser expresado como
número binario de n-bit, su valor negado puede
obtenerse en su representación de complemento a 2s
usando:
-x = 2n – x
• Ejemplo: Con un número de 8-bit 00001100 (o 1210), su
valor negado expresado en complemento a 2s es:
-000011002 = 28 – 12 (calculado en decimal)
= 244
= 111101002s
(Esto significa que -1210 es escrito como 11110100 en
su representación en complemento a 2s.)
Complemento a 2s
• Técnicas esenciales para negar un valor: inverta
todos los bits, luego sume 1.
• El valor mayor: 01111111 = +12710
• El valor menor: 10000000 = -12810
• Cero:
00000000 = +010
• Rango: -12810 to +12710
• El bit más significativo (el de más a la izquierda)
aún representa el signo: 0 par positivo; 1 para
negativo.
Complemento a 2s
• Ejemplos (asumiendo números de 8-bit):
(14)10 = (00001110)2 = (00001110)2s
-(14)10 = -(00001110)2 = (11110010)2s
-(80)10 = -( ? )2 = ( ? )2s
Comparaciones
Sistema de 4-bit
Valores Positivos
Valores Negativos
Valor
Signo y
Magnitud
Comp.
1s
Comp.
2s
Valor
Signo y
Magnitude
Comp.
1s
Comp.
2s
+7
+6
+5
+4
+3
+2
+1
+0
0111
0110
0101
0100
0011
0010
0001
0000
0111
0110
0101
0100
0011
0010
0001
0000
0111
0110
0101
0100
0011
0010
0001
0000
-0
-1
-2
-3
-4
-5
-6
-7
-8
1000
1001
1010
1011
1100
1101
1110
1111
-
1111
1110
1101
1100
1011
1010
1001
1000
-
1111
1110
1101
1100
1011
1010
1001
1000
Complemento de Fracciones
• Se puede extender la idea de complemento de
fracciones.
• Ejemplos:
– Negativo 0101.01 en complemento a 1s
Respuesta: 1010.10
– Negativo 111000.101 en complemento a 1s
Respuesta: 000111.010
– Negativo 0101.01 en complemento a 2s
Respuesta: 1010.11
Complemento a 2s
Adición/Substracción
•
Algoritmo para adición, A + B:
1.
2.
3.
•
Se ejecuta la adición binaria sobre los dos números.
Se Ignora el carry out de el MSB.
Chequeo de sobreflujo. El sobreflujo ocurre si el ‘carry in’ y el
‘carry out’ de el MSB son diferentes, o si el resultado es signo
opuesto de A y B.
Algoritmo para substracción, A – B:
A – B = A + (-B)
1.
2.
Se ejecuta el complemento a 2s de B.
Se suma el complemento a 2s de B a A.
Sobreflujo
• Los números Signados son de un rango fijo.
• si el resultado de la adición/substracción va más alla de
este rango, ocurre un sobreflujo.
• El sobreflujo puede ser facilmente detectado:
– positivo suma positivo  negativo
– negativo suma negativo  positivo
• Ejemplo: Sistema de 4-bit complemento a 2s
– Rango del valor: -810 to 710
– 01012s + 01102s = 10112s
510 + 610 = -510 ?! (¡sobreflujo!)
– 10012s + 11012s = 101102s (descarga carry final) = 01102s
-710 + -310 = 610 ?! (¡sobreflujo!)
Complemento a 2s
Adición/Substracción
•
Ejemplos: sistema de 4-bit
+3
+ +4
---+7
----
0011
+ 0100
------0111
-------
-2
+ -6
----8
----
1110
+ 1010
------11000
-------
+6
+ -3
---+3
----
0110
+ 1101
------10011
-------
+4
+ -7
----3
----
0100
+ 1001
------1101
-------
¿Cual de los de arriba es/son sobreflujo(s)?
Complemento a 2s
Adición/Substracción
•
Ejemplos: sistema de 4-bit
-3
+ -6
----9
----
1101
+ 1010
------10111
-------
+5
+ +6
---+11
----
0101
+ 0110
------1011
-------
¿Cual de los de arriba es/son sobreflujo(s)?
Complemento a 1s
Adición/Substracción
•
Algoritmo para la adición, A + B:
1.
2.
3.
•
Ejecutar la adición binaria sobre los dos numeros.
Si hay un carry out del MSB, sume 1 a el resultado.
Cheque sobreflujo. El sobreflujo ocurre si el resultado es signo
opuesto de A y B.
Algoritmo para la subtracción, A – B:
A – B = A + (-B)
1.
2.
Tome complemento a 1s de B.
Sume el complemento a 1s de B a A.
Complemento a 1s
Adición/Substracción
•
Ejemplos: sistema de 4-bit ¿Cualquier sobreflujo?
+3
+ +4
---+7
----2
+ -5
----7
----
0011
+ 0100
------0111
------1101
+ 1010
-----10111
+
1
-----1000
+5
+ -5
----0
----
0101
+ 1010
------1111
-------
-3
+ -7
----10
----
1100
+ 1000
------10100
+
1
------0101
Números en punto fijo
• En la representación de punto fijo, el punto
binario se asume que esta en una locación fija.
– Por ejemplo, si el punto binario esta en la parte final
de una representación de 8-bit como se muestra
abajo, este puede representar enteros de -128 to
+127.
punto binario
Números de punto fijo
• En general, el punto binario puede ser asumido
para estar en cualquier locación pre-fijada.
– Ejemplo: Dos bits fraccionales son asumidos como se
muestra abajo.
parte entera

Parte fraccionaria
punto binario asumido
Si el complemento a 2s es usado, se pueden
representar valores como:
011010.112s = 26.7510
111110.112s = -000001.012 = -1.2510
Números de punto flotante
• Los números de punto fijo tienen un rango
limitado.
• Los números de punto flotante permiten
representar números muy grandes o muy
pequeños .
• Ejemplos:
0.23 × 1023 (números positivos muy grandes)
0.5 × 10-37 (números positivos muy pequeños)
-0.2397 × 10-18 (números negativos muy pequeños)
Números de punto flotante
• 3 partes: signo, mantisa y exponente
• La base (radix) se asume para que sea 2.
• Bit de signo: 0 para positivo, 1 para negativo.
signo

mantisa
exponente
La mantisa esta usualmente en forma normalizada (la
parte entera es cero y la parte fraccionaria no debe
empezar con cero)
0.01101 × 24  normalizada 
101011.0110 × 2-4  normalizada 

Trueque:



Más bits en la mantisa  mejor precisión
Más bits en el exponente  mayor rango de valores
Números de punto flotante
• El exponente es usualmente expresado en complemento
o formato en exceso.
• Ejemplo: Exprese -6.510 en base-2 en forma normalizada
-6.510 = -110.12 = -0.11012 × 23
• Asumiendo que la representación de punto-flotante
contiene 1-bit, 5-bit de mantisa normalizada, y 4-bit de
exponente. El ejmplo de arrriba será almacenado como
si el exponente esta en complemento a 1s o 2s.
1
11010
0011
Números de punto flotante
• Ejemplo: Expresar 0.187510 en base-2 forma normalizada
0.187510 = 0.00112 = 0.11 × 2-2
• Asumir esta representación en punto flotante:1-bit de signo,
5-bit de mantisa normalizada, y 4-bit de exponente.
• El ejemplo de arriba será representado como
0
0
0
11000
11000
11000
1101
1110
0110
Si el exponente esta en complemento a 1s .
Si el exponente esta en complemento a 2s
Si el exponente esta en exceso a -8.
Resumen del Capítulo
• Los sistemas digitales nos rodean
− Dentro de las computadoras
− Dentro de una gran variedad de otros dispositivos electrónicos (sistemas
embebidos).
• Los sistemas digitales utilizan 1’s y 0’s.
− Codificar señales analógicas en señales digitales puede ofrecer muchos
beneficios.
▫ Por ejemplo, de audio – alta calida de almacenamiento/transmisión,
compresión, etc.
− Codificación de enteros como 0’s y 1’s: Los números binarios