Download Sistemas de Numeración Operaciones

Document related concepts

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

Código binario wikipedia , lookup

Complemento a dos wikipedia , lookup

IEEE coma flotante wikipedia , lookup

Sistema binario wikipedia , lookup

Transcript
Sistemas de Numeración
Operaciones - Códigos
Tema 2
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sistema decimal
Sistema binario
Sistema hexadecimal
Sistema octal
Conversión decimal binario
Aritmética binaria
Complemento a la base-1, Complemento a la base-2
Números con signo
Operaciones aritméticas de números con signo
Representación en Exceso
Representación interna: IEEE 754
Códigos digitales
Detección de errores y códigos de corrección
Sistemas posicionales de numeración
¿Qué es un sistema de numeración posicional?
1234,56 = 1·1000 + 2·100 + 3·10 + 4·1 + 5·0,1 + 6·0,01
TEOREMA FUNDAMENTAL DE LA NUMERACIÓN
La fórmula general para construir un número (cualquier número) N en un
sistema de numeración posicional de base b es la siguiente:
Dr. Oscar Ruano - 2011-2012
2
Sistema decimal
El sistema decimal es un sistema de numeración posicional, por lo que
el valor del dígito depende de su posición dentro del número.
Es sistema decimal usa diez dígitos para expresar los números
La posición de cada dígito en un número decimal indica la magnitud de la
cantidad representada y se asignan pesos:
Base = {0,1,2,3,4,5,6,7,8,9} = base 10
Teorema fundamental para sistemas decimales:
ENTEROS: ... 105 104 103 102 101 100
FRACCIONARIOS: 102 101 100 , 10-1 10-2 10-3 ...
El valor de un número decimal es la suma de los dígitos después de
haber multiplicado cada dígito por su peso.
Dr. Oscar Ruano - 2011-2012
3
Sistema binarios
El sistema binario es un sistema de numeración posicional al igual que el decimal
visto con anterioridad.
Únicamente emplea 2 dígitos (bits)
El valor de un bit se determina por su posición dentro del número
Es un sistema de Base={0,1}=base 2
Teorema fundamental para sistemas binarios:
El bit más a la derecha es el bit menos significativo (LSB Least Significant Bit) en un
número entero binario y su peso es de 20 = 1.
El bit más a la izquierda es el bit más significativo (MSB Most Significant Bit) y su peso
depende del tamaño del número binario.
ENTEROS: 2n-1…22 21 20
FRACCIONARIOS: 2n-1…22 21 20 , 2-1 2-2 … 2-n
En general con n bits podemos contar hasta un número igual a 2n-1
n=5 ..................... 25-1 = 32 – 1 = 31
Dr. Oscar Ruano - 2011-2012
4
Sistema binario
Dr. Oscar Ruano - 2011-2012
5
Números hexadecimales
Consta de 16 símbolos {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} base 16
Los números tiene un valor de posición característico: sistema posicional
Dr. Oscar Ruano - 2011-2012
6
Números hexadecimales
Dr. Oscar Ruano - 2011-2012
7
Conversión decimal - hexadecimal
Método útil para convertir un decimal a binario, octal …
Dr. Oscar Ruano - 2011-2012
8
Conversión hexadecimal - decimal
Dr. Oscar Ruano - 2011-2012
9
Conversión binario - hexadecimal
Dr. Oscar Ruano - 2011-2012
10
Conversión hexadecimal - binario
Nota: sumar y restar igual que en complemento a 2
Dr. Oscar Ruano - 2011-2012
11
Números octales
Consta de 8 símbolos {0, 1, 2, 3, 4, 5, 6, 7, 8} base 8
Dr. Oscar Ruano - 2011-2012
12
Conversión binario - octal
Dr. Oscar Ruano - 2011-2012
13
Conversión octal - binario
Dr. Oscar Ruano - 2011-2012
14
Conversión binario a decimal
El valor decimal de cualquier número decimal binario puede hallarse
sumando los pesos de todos los bits que están a 1 y descartando los pesos
de todos los bits que son 0.
Convertir el número entero binario 1101101 a decimal
Convertir el número binario fraccionario 0,1011 a decimal
Binary
1
Decimal
32 + 16 + 0 + 0 + 2 + 1 = 51
1
0
Dr. Oscar Ruano - 2011-2012
0
1
1
15
Conversión decimal a binario
Método de la suma de pesos
Este método consiste en determinar el conjunto de pesos binarios cuya
suma equivalga al número decimal.
Convertir el número 15310 a binario.
15310 = 27 + 24 + 23 + 20 = 128 + 16 +8 +1
15310= 100110012
Método de la división sucesiva por 2 (método visto con anterioridad)
Se va dividiendo la cantidad decimal por 2, apuntando los residuos,
hasta obtener un cociente cero. El último residuo obtenido es el bit más
significativo (MSB) y el primero es el bit menos significativo (LSB).
Dr. Oscar Ruano - 2011-2012
16
Conversión decimal a binario
Divide by 2 Process
Decimal # 13 ÷ 2 = 6 remainder 1
6 ÷ 2 = 3 remainder 0
3 ÷ 2 = 1 remainder 1
Divide-by-2 Process
Stops When
Quotient Reaches 0
1 ÷ 2 = 0 remainder 1
1
Dr. Oscar Ruano - 2011-2012
1 0 1
17
Codificadores y Decodificadores
Binary output
Decimal input
7
5
3
0
01
00
0
11
Decimal
to
Binary
Encoder
Binary input
01
00
10
1
Decimal output
Binary-to7-Segment
Decoder/
Driver
Dr. Oscar Ruano - 2011-2012
18
Conversión de fracciones decimales a binario
Suma de pesos
Emplea la misma metodología de la suma de potencias de 2 pero se
trabaja con potencias negativas.
Convertir el número 0,87510 a binario.
0,87510 = (2-1) + (2-2) + (2-3) = 0,5 + 0,25 + 0,125 = 0,1112
Multiplicación sucesiva por 2
La conversión de números decimales fraccionarios a binario se realiza
con multiplicaciones sucesivas por 2. El número decimal se multiplica
por 2, de éste se extrae su parte entera, el cual va a ser el MSB y su
parte fraccional se emplea para la siguiente multiplicación y seguimos
sucesivamente hasta que la parte fraccional se vuelva cero o maneje un
error moderado. El último residuo o parte entera va a constituir el LSB.
Convertir el número 0,87510 a binario.
Dr. Oscar Ruano - 2011-2012
19
Dr. Oscar Ruano - 2011-2012
20
Aritmética binaria: Suma
Reglas fundamentales para la suma
0 + 0 = 0 Suma 0 con acarreo 0
0 + 1 = 1 Suma 1 con acarreo 0
1 + 0 = 1 Suma 1 con acarreo 0
1 + 1 = 10 Suma 0 con acarreo 1
Ejemplos:
210 + 510 = 710
010 + 101 = 111
001101 + 100101 = 110010
1310 + 3710 = 50100
Dr. Oscar Ruano - 2011-2012
21
Aritmética binaria: Resta
Reglas fundamentales para la resta
0–0=0
1–0=1
1–1=0
10 – 1 = 1 ; 0-1 con acarreo negativo de 1
Ejemplos:
111 – 101 = 010
10001 – 01010 = 00111
710 – 510 = 210
1710 – 1010 = 710
Comprobación: A – B = C ; C + B = A
Dr. Oscar Ruano - 2011-2012
22
Aritmética binaria: Multiplicación
Reglas fundamentales para la multiplicación
La multiplicación binaria es tan
sencilla como la decimal, y es
que funcionan de la misma
manera
Ejemplo:
Dr. Oscar Ruano - 2011-2012
23
Aritmética binaria: División
Reglas fundamentales para la división
0/0
No permitido
1/0
No permitido
0/1
0
1/1
1
El procedimiento de división continúa del
mismo modo que en el sistema decimal.
Ejemplos:
Dr. Oscar Ruano - 2011-2012
24
Cuadro Resumen Operaciones
Dr. Oscar Ruano - 2011-2012
25
Formato signo-magnitud
Dr. Oscar Ruano - 2011-2012
26
Complemento a la BASE-1
Dado un número positivo N en base b con parte entera de n dígitos y una
parte decimal de m dígitos, se define el complemento a b-1 de cómo :
Dr. Oscar Ruano - 2011-2012
27
Complemento a 1
Representaciones importates ya que nos permiten representar números
negativos.
La aritmética en complemento a 2 se usa en las computadores para
manipular números negativos.
Cálculo del complemento a 1
El complemento a 1 de un número binario se halla cambiando todos los 1s por 0s
y todos los 0s por 1s
10110010
01001101
La forma más sencilla de obtener el complemento a 1 de una número binario
mediante un circuito digital es utilizando inversores en paralelo (circuitos NOT)
Dr. Oscar Ruano - 2011-2012
28
Complemento a la BASE
Dado un número positivo N en base b con parte entera de N dígitos, se
define el complemento a b de N como:
Dr. Oscar Ruano - 2011-2012
29
Complemento a 2
El complemento a 2 de un número binario se obtiene sumando 1 al LSB
del complemento a 1.
nº binario:
Complemento a 1 + 1 = Complemento a 2
10110010:
01001101 + 1 = 01001110
Método alternativo:
1.
2.
Se empieza por la derecha con el LSB y se escriben los bits como están
hasta encontrar el primer 1, incluido este.
Se calcula el complemento a 1 de los bits restantes.
Dr. Oscar Ruano - 2011-2012
30
Números con signo
Formatos binarios para representar números enteros con signo:
Signo-magnitud
Complemento a 1
Complemento a 2
Bit de signo
El bit mas a la izquierda de un número binario con signo es el bit de signo, que
indica si el número es positivo o negativo.
Un bit de signo 0 indica que es un número positivo
Un bit de signo 1 indica que es un número negativo.
Dr. Oscar Ruano - 2011-2012
31
Formatos
SIGNO-MAGNITUD
En el formato signo-magnitud, un número negativo tiene los mismo bits de magnitud que el
correspondiente número positivo, pero el bit de signo es un 1 en lugar de un 0.
0 0011001 +25 || 1 0011001 -25
Signo
Signo
magnitud
COMPLEMENTO A 1:
magnitud
Números positivos: misma forma que los números positivos en signo-magnitud
Números negativos: son el complemento a 1 del correspondiente número positivo.
Ejemplo:
+25 (00011001)
-25 (11100110)
COMPLEMENTO A 2:
Números positivos: misma forma que los números positivos en signo-magnitud y de
complemento a 1.
Número negativos: son el complemento a 2 del correspondiente número positivo
Ejemplo:
+25 (00011001)
-25 (11100111)
Dr. Oscar Ruano - 2011-2012
32
El valor decimal de los números con
signo
SIGNO-MAGNITUD.
POSITIVOS && NEGATIVOS: sumar los pesos de todas las posiciones de los bits de magnitud cuando son
1. El signo se determina examinando el bit de signo
1 0010101
Magnitud = 16+4+1 = 21
Signo = 1 = COMPLEMENTO A 1
POSITIVOS: sumar los pesos de todas las posiciones de bit donde haya 1
NEGATIVOS: asignar el valor negativo al peso del bit de signo, y sumar todos los pesos donde haya 1s y
sumar 1 al resultado
00010111
11101000
COMPLEMENTO A 2
POSITIVOS: sumar los pesos de todas las posiciones de bit donde haya 1
NEGATIVOS: el peso del bit de signo en un número negativo viene dado por su calor negativo
01010110
10101010
16+4+2+1 = +23
-128+64+32+8 = -24 + 1 = -23
64+16+4+2 = +86
-128+32+8+2 = -86
Es preferible usar el sistema de complemento a 2 para representar números con signo: se requiere una adición de
pesos independientemente de que el número sea positivo o negativo
Dr. Oscar Ruano - 2011-2012
33
Rango de representación de los números
enteros con signo
El rango de magnitud de un número binario depende del número de
bits (n)
8 bits (byte) 256 números diferentes
16 bits
65536 números diferentes
32 bits
Números con signo en signo-magnitud
Nº total de combinaciones = 2n
4,295 x 109
Rango = - (2n-1 -1) hasta + (2n-1 -1)
Números con signo en complemento a 2
Rango = - (2n-1) hasta + (2n-1 -1)
Dr. Oscar Ruano - 2011-2012
34
Suma: Complemento a 2
SUMA: sumar los dos números y descartar cualquier bit de acarreo
La suma de dos números positivos da una número positivo:
00000111
+ 00000100
00001011
7
+4
11
La suma de un número positivo y un número negativo menor en valor absoluto da como
resultado un número positivo
00001111
+ 11111010
1 00001001
La suma de un número positivo y un número negativo mayor en valor absoluto o la suma de
dos números negativos da como resultado un número negativo en complemento a 2:
00010000
+11101000
11111000
15
+ -6
9
16
+ -24
-8
11111011
+ 11110111
1 11110010
Condición de desbordamiento (overflow):
Dr. Oscar Ruano - 2011-2012
01111101
+ 00111010
10110111
-5
+ -9
-14
125
+58
183
35
Resta complemento a 2
RESTA: la resta es una suma con el signo del sustraendo cambiado
El signo de un número binario positivo o negativo se cambia tomando su
complemento a 2
Para restar dos números con signo, se calcula el complemento a 2 del
sustraendo y se suman
Cualquier bit de acarreo final se descarta
8 – 3 = 8 + (- 3) = 5
00001000
+11111101
1 00000101
00001000 - 00000011
Minuendo (+8)
Complemento a 2 del sustraendo (- 3)
Descartar acarreo
Dr. Oscar Ruano - 2011-2012
36
Multiplicación complemento a 2
Suma directa:
La multiplicación es equivalente a
sumar un mismo número el número de
veces que indique el multiplicador
01001101 multiplicando
00000100 multiplicador
01001101
+01001101
10011010
+01001101
11100111
+01001101
100110100
Productos parciales
Mismo signo signo positivo
Diferente signo, negativo
Algoritmo del método
Determinar el signo que tendrá el
producto
Poner cualquier número negativo en
formato real no complementado.
Generar los productos parciales
Sumar los productos parciales
Si el bit de signo que se había
determinado en el paso 1 es negativo,
calcular el complemento a 2. Si es
positivo, dejar el producto en formato
real. Añadir el bit de signo al producto.
Dr. Oscar Ruano - 2011-2012
37
Ejemplos de Multiplicación
Multiplicando: 0011
Multiplicador: 0011
Signo positivo
Multiplicando: 0011
Multiplicador: 1101
Signo negativo
011
x011
011
011
1001
000
1001
Solución: 0 1001
011
x011
011
011
1001
000
1001
Solución: 1 0111
Dr. Oscar Ruano - 2011-2012
38
División complemento a 2
DIVISIÓN
1.
2.
3.
Mismo signo signo positivo
Diferente signo, negativo
Ambos números (dividendo divisor) deben estar en formato real
Determinar el signo que tendrá el cociente. Inicializar el cociente a 0
Restar el divisor del dividendo utilizando la suma en complemento a 2 para
obtener el primer resto parcial, y SUMAR 1 AL COCIENTE. Si el resto parcial es
positivo, ir al paso 3. Si el resto parcial es 0 o negativo, la división ha terminado.
Restar el divisor del resto parcial y sumar 1 al cociente. Si el resultado es
positivo, repetir para el siguiente resto parcial. Si el resultado es 0 o negativo, la
división ha terminado.
Dr. Oscar Ruano - 2011-2012
39
Ejemplos de División
Dividendo: 010101 =21
Divisor: 111001 = -7
El signo del cociente será 1 (negativo)
Formato real del divisor: 000111
010101
+111001 cociente
1 001110 000000 + 000001= 000001
+111001
1 000111 000001 + 000001 = 000010
+111001
1 000000 000010 + 000001 = 000011
Cociente= 111101 signo negativo
Dr. Oscar Ruano - 2011-2012
40
Representación exceso a Z
Un número binario representa su valor binario menos Z:
01010 en exceso 16 representa el número 10 – 16 = - 6
La representación binaria de un número en exceso Z, se obtiene sumando
Z al número
Representación de -6 en exceso 16 con 5 bits es 10: 01010
Representación de -8 en exceso 16 con 5 bits es 8: 01000
Representación de 8 en exceso 16 con 5 bits es 24: 10000
El rango de valores que se pueden representar con n bits en exceso 2n-1 es:
[-2n-1, 2n-1 - 1]
Dr. Oscar Ruano - 2011-2012
41
Números reales: la notación IEEE 754
Los computadores representan los números en notación científica
normalizada:
Todos los dígitos del número están a la derecha de la coma decimal y el primer dígito a
la derecha de la coma decimal es diferente de cero
345,789 x 1012 = 0.345789 x 1015
Notación exponencial, científica o en coma flotante: cualquier número
se puede representar de la forma:
N = ± M · BE
donde N es el número, M es la mantisa, B es la base y E es el exponente.
Esta representación puede modificarse, conservando el valor de N, si se
reajustan adecuadamente M y E.
13257,3285 = 13257,3285 · 100 = 1,32573285 · 104 = 0,132573285 · 105 = 132573285 · 10-4
Dr. Oscar Ruano - 2011-2012
42
Notación IEEE 754
PRECISIÓN SIMPLE
La mantisa está representada como número binario con signo y el exponente en
exceso 127
Un número arbitrario queda representado entonces de la forma:
x = (-1)sm . (1,m22....m0) . 2(e7…e0)2 -127
Ejemplo: 1 10000001 01000000000000000000000
SM (signo mantisa) = 1
Exponente = (10000001)2 = (129)10; al estar en exceso 127 le
restamos 127 para conocer el número que representa, igual a 2.
Mantisa = 1, 01000000000000000000000 = 1 + 1 x 2-2 = 1,25
Resultado: -1,25 x 22 = -5
Dr. Oscar Ruano - 2011-2012
43
Código decimal binario BCD: 8421
El código decimal binario (BCD Binary Code Decimal) es utilizado para
expresar los diferentes dígitos decimales con un código binario. Por
consiguiente, el código BCD tiene diez grupos de código y resulta práctico
para convertir entre decimal y BCD.
El código 8421 pertenece al grupo de códigos BCD. El nombre 8421 indica
los diferentes pesos de los cuatro bits binarios (23, 22, 21, 20).
649810 =(0110 0100 1001 1000)8421
Dr. Oscar Ruano - 2011-2012
44
Suma en BCD
Sumar los dos números BCD utilizando las reglas de la suma binaria
Si una suma de 4 bits es igual o menor que 9, es un número BCD válido
Si la suma de 4 bits es mayor que 9, o si genera acarreo el resultado no es
válido. En este caso se suma 6 (0110) al grupo de 4 bits para saltar así los
seis estados no válidos. Si se genera un acarreo al sumar 6, éste se suma
al grupo de 4 bits siguiente.
0010 0011
+0001 0101
0011 1000
1001
+0100
1101 no válido
+0110
1 0011
Dr. Oscar Ruano - 2011-2012
1001
+1001
1 0010 no válido
+0110
1 1000
45
Código Gray
Un número y el siguiente se diferencian en un solo bit. El que suele cambiar
es el menos significativo de los posibles.
Dr. Oscar Ruano - 2011-2012
46
Código ASCII
(Caracteres de control)
Dr. Oscar Ruano - 2011-2012
47
Código ASCII
(símbolos gráficos 20h – 3Fh)
Dr. Oscar Ruano - 2011-2012
48
Código ASCII
(símbolos gráficos 40h – 5Fh)
Dr. Oscar Ruano - 2011-2012
49
Código ASCII
(símbolos gráficos 60h – 7Fh)
Dr. Oscar Ruano - 2011-2012
50
Método de paridad para detección de
errores
Un bit de paridad es un dígito binario que indica si el número de bits con
valor 1 en un conjunto de bits, es par o impar.
Hay dos tipos de bits de paridad: bit de paridad par y bit de paridad
impar.
El bit de paridad par se pone a 1 si el número de unos en un conjunto de bits es
impar, haciendo de esta forma que el número total de bits (datos+paridad) sea
par.
El bit de paridad impar se pone a 1 si el número de unos en un conjunto de bits
es par, haciendo de esta forma que el número total de bits (datos+paridad) sea
impar.
Dr. Oscar Ruano - 2011-2012
51
Código Hamming de corrección
ENVÍO: CONSTRUCCIÓN DE CÓDIGO
Número de bits de paridad:
Colocación de los bits de paridad en el código:
2p ≥ d + p + 1
Bit1, bit2, bit3, bit4, bit5, bit6, bit7 ...
Los bits de paridad se sitúan en las posiciones que son potencias de 2 en sentido
ascendente
EJEMPLO
Tamaño palabra de datos: 4 bits (D1D2D3D4)
Número bits paridad/redundancia: 3 (P1P2P3)
Formato palabra codificada
Cálculo valores bits de paridad:
p1 => p1 D1 D2 D4
p2 => p2 D1 D3 D4
p3 => p3 D2 D3 D4
P1 P2 D1 P3 D2 D3 D4
Dr. Oscar Ruano - 2011-2012
52
Código Hamming de corrección
RECEPCIÓN: COMPROBACIÓN
Palabra codificada que llega
Es necesario decodificar la palabra
Las formulas para verificar los bits de paridad son:
c1 c2 c3 c4 c5 c6 c7
se tienen que verificar bits paridad c1c2 y c4
0 comprobación correcta
1 comprobación no correcta
e1 => c1 c3 c5 c7
e2 => c2 c3 c6 c7
e4 => c4 c5 c6 c7
Si (e1 = e2 = e3 = 0) entonces
no hubo error en la transmisión
sino
error, el bit erróneo corresponde al equivalente decimal de (e3e2e1)2:
001: 1
010: 2
011: 3
100: 4
101: 5
110: 6
111: 7
Dr. Oscar Ruano - 2011-2012
53