Sistemas numéricos

Anuncio
Sistemas Digitales
Sistemas numéricos
Sistemas numéricos
Prof. Mario Medina
mariomedina@udec.cl
Números en base 10
Base usada día a día y natural para el ser
humano
 10 dígitos (símbolos) : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
 Notación posicional


Representación posicional
Números en base 10
 Números en bases 2, 8 y 16
 Conversión de enteros y decimales entre bases
 Operaciones aritméticas en base 2
 Representando números negativos en base 2
 Representación con magnitud y signo
 Suma y resta en complemento a 2


Notación posicional o
ponderada

La ponderación de cada dígito o símbolo está
asociada a su posición

Sistemas ponderados regulares

Valor del dígito dado por la posición
1234 = 1000 + 200
+ 30 + 4
1234 = 1 • 103 + 2 • 102 + 3 • 101 + 4 • 100
 12,34 = 1 • 101 + 2 • 100 + 3 • 10-1 + 4 • 10-2



Sistemas ponderados no regulares

Un número N en base b se escribe
Nb = an-1an-2. . . a1a0,a-1a-2. . .a-m+1a-m
 La coma separa la parte entera de la parte
fraccionaria



En algunos países se utiliza el punto
Tiene n dígitos en su parte entera
Tiene m dígitos en su parte fraccionaria

Ejemplo: 34,342
Números romanos (I, V, X, L, C, M)
Notación posicional regular

El valor de un número N en la base b se evalúa
según la formula
Nb = an-1bn-1 + an-2bn-2 + . . . + a1b1 + a0b0 +
a-1b-1 + a-2b-2 + . . . + a-m+1b-m+1 + a-mb-m
 donde:
 b≥2, base del sistema numérico
ai, dígito entre 0 y b-1
n-1: máximo exponente en la parte entera
 -m: mínimo exponente en la parte fraccionaria




© 2014 Mario Medina C.
Equivale a ((H1×10+H0)×60+M1×10+M0)×60+S1×10+S0
Sistemas no ponderados


Notación horaria H1H0 : M1M0 : S1S0


Notación posicional regular
Ponderación corresponde a potencias sucesivas de un
valor base b
an-1: Most Significant Digit (MSD)
a-m: Least Significant Digit (LSD)
1
Sistemas Digitales
Bases más comunes
Binario
Ternario
Octal
Hexa
0
0
0
0
0
1
1
1
1
1
2
10
2
2
2
3
11
10
3
3

4
100
11
4
4

5
101
12
5
5
6
110
20
6
6
7
111
21
7
7
8
1000
22
10
8
9
1001
100
11
9
10
1010
101
12
A
 Corriente circula / no circula
11
1011
102
13
B
12
1100
110
14
C
 Transistor conduce / no conduce
13
1101
111
15
D
14
1110
112
16
E
15
1111
120
17
F
Números en base 2

Porqué usar base 2?
Decimal
Sólo 2 dígitos, 0 y 1

Toda información se traduce a código binario
Fácil detección de estados
 Fácil de implementar
 Sólo requiere 2 dígitos: 0 y 1
 Compuerta está abierta / cerrada
Números en base 8

Variable binaria es un Bit (Binary Digit)
 Nombre dado por John Tukey


110012 = 100002 + 10002 + 12
110012 = 1  24 + 1  23 + 1  20
 110012 = 16 + 8 + 1 = 25




Equivalente a base 2
Representación más fácil y compacta
Usa dígitos 0-9, A-F
 36F016 = 3  163 + 6  162 + 15  161 = 1406410

Representación más fácil y compacta
Usa dígitos 0-7
 36708 = 3  83 + 6  82 + 7  81 = 197610


Porque 8 es 23
 Agrupar bits de derecha a izquierda de 3 en 3
 001 101 010 1102 = 15268
Potencias de 2





Fácil conversión entre base 2 y base 16
24
Porque 16 es
 Agrupar bits de derecha a izquierda de 4 en 4
 0011 1101 1010 01102 = 3DA616

© 2014 Mario Medina C.
Fácil conversión entre base 2 y base 8

Operaciones aritméticas: +, -, *
Operaciones lógicas: AND, OR, XOR, NOT
Números en base 16
Equivalente a base 2

Valor del dígito dado por la posición

Computadores digitales usan base 2






20 = 1
21 = 2
22 = 4
23 = 8
24 = 16
25 = 32
26 = 64
27 = 128
28 = 256









29 = 512
210 = 1024 (1 Kilo)
220 = 1024K (1 Mega)
230 = 1024M (1 Giga)
240 = 1024G (1 Tera)
250 = 1024T (1 Peta)
260 = 1024P (1 Eta)
270 = 1024E (1 Zetta)
280 = 1024Z (1 Yotta)
2
Sistemas Digitales
Prefijos estándar IEC

Convertir base 10 a base 2

No confundir 1 Kilo (1000) con 1 Kilo (1024)
Divisiones sucesivas

1 Kilo de papas = 1000 gramos = 103 gramos
 1 Kilo de bytes = 1024 bytes = 210 bytes
 En computación, Kilo se usa para 1024




Prefijos estándares IEC
 210:
Kibi (Ki)
 220: Mebi (Mi)
 230: Gibi (Gi)
 240: Tebi (Ti)
Conversión de enteros

Convertir entero Mb a base d

Dividir Mb por la nueva base d usando la aritmética


Se obtiene un cuociente S y un resto r
 El resto de la división es el coeficiente c0
Repetir la división del cuociente S por la base

Terminar cuando el cuociente de la división es 0
de la base original


Pasos a seguir





Multiplicar el dígito más significativo por la base b
Sumarle el dígito siguiente
Multiplicar el resultado por la base b
Repetir hasta que se haya sumado el último dígito
Ejemplo: 74218 a base 10
Evaluar (((7*8) + 4)*8 + 2)*8 + 1
Evaluar ((56+ 4)*8 + 2)*8 + 1
 Evaluar (60*8 + 2)*8 + 1
 Evaluar (480 + 2)*8 + 1
 Evaluar 482*8 + 1 = 385710






Cómo convertir de
base 10 a otras bases?


289:2 = 144 + 1/2
144:2 = 72 + 0/2
72:2 = 36 + 0/2
36:2 = 18 + 0/2
18:2 = 9 + 0/2
9:2 = 4 + 1/2
4:2 = 2 + 0/2
2:2 = 1 + 0/2
1:2 = 0 + 1/2
Resultado: 1001000012
Conversión de enteros

Conversion de base b a base 10



Evaluar las potencias y la sumatoria
Método de los productos sucesivos
Conversión de base b a base d



Proceso más complejo
Operaciones aritméticas en la base original b
Recomendado:
 Convertir el número original de base b a base 10



Convertir 28910 a base 2


Cada nuevo resto corresponde a un nuevo ci
Método de los productos
sucesivos

Procesa termina cuando
resultado es 0
Retener los restos de las
divisiones
El primer resto
calculado es el bit
menos significativo b0
Convertir el resultado anterior en base 10 a base d
Considerar la escritura formal de un número en base d
Conversión de enteros

Ejemplos:



Convertir 79310 a base 8
Convertir 1210 a base 2
Convertir 538 a base 5
793
1
99
3
12
4
1
1
 99 

 12 

 1

 0
 1431 8
8
8 10
8 10
8 10
8 10
8 10
8 10
8 10


© 2014 Mario Medina C.
12
0
6
0
3
1
1
1
0
0
 6

 3

 1

 0

 0
 01100 2
2
2 10
2 10
2 10
2 10
2 10
2 10
2 10
2 10
2 10
3
Sistemas Digitales
Conversión de fracciones

Proceso de multiplicaciones sucesivas


Conversión de fracciones

Proceso termina cuando la precisión del resultado
es equivalente



Proceso termina cuando
se alcanza la precisión
buscada
El primer rebalse
calculado es el bit más
significativo b-1
Resultado es
0.11001001102

Convertir 0.78810 a base 2











Terminar cuando las precisiones de Nb y Nd sean
equivalentes
123.45610 a base 2
La parte entera es el coeficiente c-1
Cada nueva parte entera es un nuevo ci
Conversión de fracciones por
restas sucesivas

0.788*2 = 1.576 = 1 + 0.576
0.576*2 = 1.152 = 1 + 0.152
0.152*2 = 0.304 = 0 + 0.304
0.304*2 = 0.608 = 0 + 0.608
0.608*2 = 1.216 = 1 + 0.216
0.216*2 = 0.432 = 0 + 0.432
0.432*2 = 0.864 = 0 + 0.864
0.864*2 = 1.728 = 1 + 0.728
0.728*2 = 1.456 = 1 + 0.456
0.456*2 = 0.912 = 0 + 0.912
Ejercicios

Multiplicar nuevamente la fracción f por la base
Se busca el entero superior: x = 10
Multiplicaciones
sucesivas



log10
 9.96
log2
Conversión de fracciones

Se obtiene una parte entera E y una fracción f

Precisión original:
 Precisión deseada: 2-x
x 3
Multiplicar N por la nueva base d usando la

10-3

Nb  a 1b1    a mbm
aritmética de la base original
Ejemplo: convertir 0.78810 a base 2

Convertir número Nb a base d
Restas sucesivas de potencias decrecientes de 2



Si la resta da resultado positivo, se genera un dígito
binario 1
Si la resta da resultado negativo, ésta no se realiza y
se genera un dígito binario 0
Ejemplo: convertir 0.742110 a base 2
0.7421 – 2-1 = 0.7421 – 0.5 = 0.2421
 a-1 = 1
0.2421 – 2-2 = 0.2421 – 0.25 = -0.0079  a-2 = 0
 0.2421 – 2-3 = 0.2421 – 0.125 = 0.1171
 a-3 = 1
 0.1171 – 2-4 = 0.1171 – 0.0625 = 0.00546  a-4 = 1


Aritmética en base 2

678.90110 a base 2

Suma binaria

+
0
0
0
1
1
1
1
10
Suma binaria puede generar un rebalse o acarreo
(carry)
Carry in: proviene del dígito de menor ponderación
(i-1)
 Carry out: generado hacia el dígito de mayor
ponderación (i+1)

© 2014 Mario Medina C.
4
Sistemas Digitales
Operaciones aritméticas en
base 2
Tabla de suma en base 2

Resta binaria (x – y)
x
y
cin
cout
x+y
0
0
0
0
0
-
y=0
y=1
0
0
1
0
1
x=0
0
1*
0
1
0
0
1
x=1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
Tabla de resta en base 2
Resta binaria puede necesitar un préstamo
(borrow)

Borrow in: préstamo que proviene del dígito de
menor ponderación (i-1)
 Borrow out: préstamo generado para el dígito de
mayor ponderación (i+1)

Ejemplo de resta binaria
x
y
bin
bout
x-y
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
Ejercicios: resta binaria
-


© 2014 Mario Medina C.
0
0
1
0
0
1
0
1
1
Minuendo
Sustraendo
Diferencia
En la práctica no se utiliza
Se prefiere realizar una suma con el sustraendo
complementado
Desplazamiento a la izquierda
Equivalente a multiplicar por 2
 01102  11002
 01012  10102

(610  1210)
(510  1010)
Desplazamiento a la derecha

10110010
111101
01110101
1
1
1
Desplazamiento de bits

1110110
- 111101
0111001
0
1
0
Resta binaria es un proceso largo y muy
propenso a errores


1 11 1 0 1 0 0
10 0 0 1 1 1
1 01 0 1 1 0 1
1
0
0
Equivalente a dividir por 2
 01102  00112
 01012  00102

(610  310)
(510  210)
División aproxima resultados a entero inferior
5
Sistemas Digitales
Multiplicación y división por
la base

Equivalente a desplazar los coeficientes una
posición a la izquierda, llenándo el LSD con 0

Sea el entero

Entonces,
Nb  b  a n1bn  a n2bn1    a 0b1  0b0
División por la base equivale a desplazamiento a la
derecha

10112x11012
1011
0000·
1011··
1011···
100011112
11012x101012
???
Aritmética en otras bases
Suma octal
+
0
1
2
3
4
5
6
7
0
0
1
2
3
4
5
6
7
1
1
2
3
4
5
6
7
10
2
2
3
4
5
6
7
10
11
3
3
4
5
6
7
10
11
12
4
4
5
6
7
10
11
12
13
5
5
6
7
10
11
12
13
14
6
6
7
10
11
12
13
14
15
7
7
10
11
12
13
14
15
16
1
626
5338


13618
Restar A − B equivale a sumar A + (−B)
Qué valor toma (−B) para un número en binario?
 Sea Nb un número en base b
Nb   a k b
k
k 0
Se define el complemento a la base [Nb] como
N b  b n  N b
 Números fraccionarios

N f b  b 0  N f b
© 2014 Mario Medina C.
Préstamo
6
3
(9)
 (8)
6
1
Suma decimal parcial
- base
Suma octal
Notación complemento a 2:
[n]2


n 1
1
6 2
5 3
(11) (6)
 (8)
1
3
Ejercicio: sumar los octales 626 y 533
Sistemas complementarios

Equivalente a realizar desplazamientos y sumas
Generalización de lo que ocurre en base 10
Aritmética en otras bases


Nb  a n1bn1  a n2bn2    a 0b0


Multiplicación en base 2
En base 2, se tiene
N2  2n  N2
Codificación usada para representar
números negativos en base 2
 Para números fraccionarios, se tiene que
Nf 2  1  Nf 2

0,10112  1  0,1011  0,01012
6
Sistemas Digitales
Sistemas complementarios

Sistemas complementarios
Ejercicios:

Complemento a 10 del decimal 1279
1
-


0
1
8
0
2
7
0
7
2
0
9
1
104  N10
Complemento a 2 de 1001010010
1
0
0
0
0
0
0
0
0
0
0
-
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
N 2
210  N2
Complemento a 8 del octal 342
1
-
0
3
4
0
4
3
0
2
6
83  N8
Métodos de cálculo de
complemento a 2
Porqué usar complemento a 2?
Dos métodos:

1.
Invertir cada bit del número original y sumar 1 al
resultado
Ejemplo:
[1101001]2 = 00101102 + 12
2.
Complemento a 2 simplifica la resta de
números binarios
 Convierte la resta de dos números en una suma
X2 – Y2 = X2 + [Y]2
 Pero, hay dos casos dependiendo de la presencia
de rebalses
Partiendo del bit menos significativo, copiar los
bits hasta encontrar el primer 1. Luego,
complementar el resto de los bits
Ejemplo:
[110100100]2 = 0010111002
Restas en complemento a 2

1110112 – 1001102 es equivalente a sumar
1110112 + [100110]2
1110112 + [100110]2 es 1110112 + 0110102 lo que
es igual a 10101012
 Hubo un rebalse, por lo que 0101012 es el
resultado correcto y el rebalse se ignora
 Comprobación: 1110112 – 1001102 , lo que es
5910 – 3810 = 2110 que en base 2 es 101012

© 2014 Mario Medina C.
Qué pasa si no hay rebalse?

1001102 – 1110112 es equivalente a sumar
1001102 + [111011]2
Esto es 1001102 + 0001012 lo que da 1010112
No hubo rebalse: el resultado correcto es el
complemento del resultado con signo negativo, es
decir,- [101011]2 = -0101012
 Comprobación: 1001102 – 1110112, lo que es 3810 –
5910 = -2110 que en base 2 es -101012


7
Sistemas Digitales
Resta binaria complementaria

Por qué?

(A)2 + [B]2 equivale a (A)2 +
Signo de un número binario

2n
− (B)2
Si (A)2 > (B)2, resultado es positivo mayor que 2n
 Se consideran solo los n bits menos significativos del
resultado
 Si (A)2 < (B)2, resultado generado es menor que 2n
 Resultado es igual a −((B)2−(A)2), valor que se puede
conocer complementando el resultado


Se quiere ahora representar el signo de un número en
un bit adicional a la izquierda del número
 Si el MSB de un numero es 1, el numero es negativo
 Si el MSB de un numero es 0, el numero es positivo
Un número binario de n bits en notación con signo
tiene la estructura
Signo
1 bit

Rebalses

Definición de rebalses



Rebalse aritmético: generado al pasar un rebalse
desde el MSB del módulo al bit de signo
Rebalse lógico: rebalse desde el bit de signo al
exterior
En un resta pueden darse 4 casos, dependiendo de
la existencia o ausencia de estos rebalses

Rebalse aritmético (4 + 4)

Si existen ambos rebalses o si no existe
ninguno de ellos



Error! Resultado correcto es 0 10002



Hay error
Si la suma de dos números de distinto signo
excede la capacidad de representación
Hay error
Rebalse lógico

Rebalse lógico (-5-7)
1 0112
1 0012
10 1002

Resultado obtenido es -8
La operación excede representación de 3 bits
No hay error
Si la suma de dos números del mismo signo
tiene el signo opuesto a éstos

0 1002
0 1002
1 0002

Magnitud se almacena en complemento a 2
Rebalses en sumas

Rebalse aritmético en sumas
Magnitud en comp. a 2
n-1 bits
Error! Resultado correcto es 1 01002 = -1210


Resultado obtenido es +4
Operación excede representación de 3 bits
Solución: ampliar la representación de los números
agregando otro bit al módulo
© 2014 Mario Medina C.
8
Sistemas Digitales
Rebalse aritmético y lógico

Operación sin rebalse
Rebalse lógico y aritmético (-3-2)

No hay rebalse (3+2)
1 1012
1 1102
11 0112
0 0112
0 0102
0 1012

Resultado correcto es 1 0112 = -510
 Se ignora el rebalse lógico
 Rebalse aritmético es el nuevo bit de signo

Representación de números
con módulo y signo
Complemento a la base
disminuida
Decimal
Binario
-8
-7
-6
-5
-4
-3
-2
-1
1000
1001
1010
1011
1100
1101
1110
1111
Decimal
Binario
0
1
2
3
4
5
6
7
0000
0001
0010
0011
0100
0101
0110
0111
Complemento a 1



En el sistema binario, el complemento a 1 de un
número se obtiene complementando cada bit,
es decir, intercambiando 1s y 0s.
Ejemplo:
Complemento a 1 de 110101101
1
1
0
1
0
1
1
0
1 N2
0
0
1
0
1
0
0
1
0 N1
Resultado correcto es 0 1012 = 510
Sea el número entero
Nb  a n1bn1  a n2bn2    a 0b0

Se define el complemento a la base disminuida
como
Nb1  bn  1  Nb  Nb  1

Si N tiene parte entera y fraccionaria, esto es
Nb 1  bn  b m  N b  Nb  b  m
Complemento a 1

En el sistema binario, el complemento a 1 de un
número se obtiene complementando cada bit,
es decir, intercambiando 1s y 0s.


Ejemplo:
[110101101]1 = 0010100102
El complemento a 2 de un número binario N es
el complemento a 1 del número + 1
[N]2 = [N]1 + 1
© 2014 Mario Medina C.
9
Sistemas Digitales
Complementos a 2 y a 1
Binario
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Decimal positivo Comp. a 1
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
-7
9
-6
10
-5
11
-4
12
-3
13
-2
14
-1
15
-0
Comp. a 2
0
1
2
3
4
5
6
7
-8
-7
-6
-5
-4
-3
-2
-1
Rangos de representación

Número de n bits puede representar 2n-1
números positivos y 2n-1 números negativos





Rango: -2n-1 a (2n-1 – 1)
4 bits: -8 a 7
8 bits: -128 a 127
16 bits: -32 768 a 32 767
32 bits: -2 147 483 648 a 2 147 483 647
Un poco de
humor
Valor de un número binario de
n bits

Número binario de n bits puede representar 2n
símbolos diferentes

Sólo enteros positivos

Enteros positivos y negativos


Rango de 0 a 2n-1
Usando complemento a 1: rango de -2n-1 +1 a 2n-1 -1



Siempre hay 2 ceros en complemento a 1!
Usando complemento a 2: rango de -2n-1 a 2n-1 -1
Las mismas secuencias de bit se interpretan de
manera diferente
Representación de números
con signo

4 bits pueden
representar 16 valores




01112 = 710
00002 = 010
11112 = -110
10002 = -810

8 bits pueden
representar 256 valores




011111112 = 12710
000000002 = 010
111111112 = -110
100000002 = -12810
• En notación con signo usando complemento a 2,
01….11 es siempre 2n-1-1, 11……11 es siempre –1 y
10….00 es siempre –2n-1
Hay 10 tipos de personas . . .
En Japón,
enseñan a contar
digitalmente de
esta forma en las
escuelas!
© 2014 Mario Medina C.
10
Sistemas Digitales
Futurama
© 2014 Mario Medina C.
11
Descargar