Download Presentación de PowerPoint

Document related concepts

Sistema hexadecimal wikipedia , lookup

Sistema octal wikipedia , lookup

Sistema de numeración decimal wikipedia , lookup

Sistema de numeración wikipedia , lookup

Notación posicional wikipedia , lookup

Transcript
ENSAMBLADOR
Sistemas de Numeración
Un sistema numérico es un conjunto de reglas y símbolos que nos permiten
escribir números.
Números: reales negativos y positivos, y enteros negativos y positivos
Representación de números enteros no negativos
Sea R (base o radio) un número mayor o igual que 2, entonces pueden
representarse números enteros como una cadena de dígitos escogidos entre
0,1,2,…..,R-1. Donde la cadena es la representación en base R del entero.
La base de un sistema numérico es el número de dígitos que pueden aparecer en
cada posición en el sistema numérico.
Ejemplo: R=3 digitos={0,1,2}
Base 10---0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
Base 3 --- 0,1,2,10,11,12,20,21,22,100,101,102,110,111,112,120,121,122,200
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Sistemas de Numeración
Conversión entre bases
Sea el número akak-1….a1, un entero en base R.
Para convertir este número de base R a base Q utilizamos la conversión:
akRk-1+ak-1Rk-2+…+a1R0
(Expresión uno)
Donde R es la base en la que se encuentra el número (base actual), k es el número
de dígitos que conforman el número y Q es la nueva base (se debe trabajar
con aritmética en base Q).
Ejemplos:
1)
Convertir (100110)2 (
R=2
k=6
Q=10
)10
a6=1, a5=0, a4=0, a3=1, a2=1, a1=0
1*26-1+0*26-2+0*26-3+1*26-4+1*26-5+0*26-6= 1*25+0*24+0*23+1*22+1*21+0*20=
1*25+1*22+1*21= 32+4+2=38
Finalmente obtenemos que: (100110)2  (38)10
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Sistemas de Numeración
2) Convertir (4302)5  ( )3
R=5
Q=3
k=4
a4=4, a3=3, a2=0, a1=2
Se debe trabajar con aritmética en base 3, por lo tanto necesitamos las tablas de suma y
multiplicación en base 3.
+
0
1
2
0
0
1
2
1
1
2
10
2
2
10
11
*
0
1
2
0
0
0
0
1
0
1
2
2
0
2
11
4*53+3*52+0*51+2*50= 11*123+10*122+2*120= 11*11122+10*221+2*1=
200112+2210+2= 210101
12*12
101
12
221
221*12
1212
221
11122
11122*11
11122
11122
200112
221*10
000
221
2210
200112
+ 2210
2
210101
Realizando las sumas y multiplicaciones debidas en base 3, obtenemos:
(4302)5  (210101)3
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Sistemas de Numeración
Conversión de números de base X a base 10 (donde X10)
Algoritmo 1. (Regla de Horner para la evaluación de polinomios)
1. ik, num 0
2. Mientras i1 hacer
Donde R es la base actual, k es el
num num*R+ai
número de dígitos que componen el
número y ai es el i-ésimo dígito del
i i-1
número en base X (derecha a izquierda)
fin_mientras
3. Fin
Ejemplo:
Convertir (4302)5  ( )10
I
4
3
2
1
0
num
0
4
23
115
577
R
5
a4
4
a3 a2 a1 k
3 0 2 4
Utilizando el algoritmo 1 obtenemos:
(4302)5  (577)10
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Sistemas de Numeración
Conversión de números de base 10 a base s (donde s10)
Algoritmo 2.
1. i1, q0, p 0
2. Repetir
Donde x inicialmente es el número a
q [x/s] (parte entera)
convertir, s es la nueva base y ai es el ip x-q*s (residuo)
ésimo dígito del número en base s
tomando el orden akak-1…a1
ai p, i i+1, x  q
hasta q=0
3. Fin
Ejemplo:
Convertir (577)10  (
)3
x
577
192
64
21
7
2
q
0
192
64
21
7
2
p
0
1
0
1
0
1
ai
1
0
1
0
1
i
1
2
3
4
5
6
0
0
2
2
7
s
3
Obtenemos:
(577)10  (210101)3
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Sistemas de Numeración
Conversión de números de base X a base 10 (donde X10)
Números fraccionarios
Algoritmo 3.
Donde m es el número de dígitos que
1. im, num0
componen el número que queremos
2. Mientras i1hacer
convertir, R es la base actual y num es el
num (num+bi)/R
número en la nueva base.
i i-1
fin_mientras
3. Fin
Ejemplo:
Convertir (.A06)16  (
)10
i
3
2
1
0
num
0
.375
.0234375
.62646484
m
3
R
16
b1 b2
A 0
b3
6
Obtenemos:
(.A06)16  (.62646484)10
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Sistemas de Numeración
Conversión de números de base 10 a base s (donde s10)
Números fraccionarios
Algoritmo 4.
1. i1
Donde m es el número de dígitos que se
2. Mientras i  m hacer
desean obtener, x es el número a
x x*s
convertir inicialmente, s es la nueva
y [x] (parte entera)
base y bi es el i-ésimo dígito del número
en base s tomando el orden b1b2…bm
x x-y, bi y, i  i+1
fin_mientras
3. Fin
Ejemplo:
Convertir (.62646484)10  (
)7
i
x
1
.62646484
4.38525388
.38525388
2.69677716
.69677716
4.87744012
2
3
Obtenemos:
(.62646484)10  (.424)7
4
.87744012
y
bi
m s
3
7
4
4
2
2
4
4
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Sistemas de Numeración
Conversión de potencias de 2
Para convertir números de base 2 a base k, donde k puede expresarse como una
potencia de 2, es decir, k=2x donde x>1 y es un número entero, se llevan a cabo
los siguientes pasos:
1.Se agrupan de x en x los dígitos que se encuentran a la izquierda del punto,
comenzando a partir de él y aumentando ceros a la izquierda cuando es necesario.
2.Se agrupan de x en x los dígitos que se encuentran a la derecha del punto
comenzando a partir de éste y aumentando ceros a la derecha cuando sea
necesario.
3.Se sustituyen los grupos por los dígitos correspondientes en la base k.
Ejemplo:
(1110010100.011011)2  ( )16
0011 1001 0100 . 0110 1100
3
9
4
6
C
Donde 16=24
Resultado:
(1110010100.011011)2  (394.6C)16
Se agregaron dos ceros
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Sistemas de Numeración
Conversión de potencias de 2
Para convertir números de base k=2x a base 2, se sustituye cada dígito en base k
por los x dígitos binarios correspondientes.
Ejemplo:
(7402.61)8  ( )2
7
4
0
2
Donde 8=23
. 6
1
Resultado:
111 100 000 010 110 001 (7402.61)8  (111100000010.110001)2
Operaciones aritméticas en diferentes bases
Base 2
111
Suma
+
0
1
0
0
1
101101
+10110
1000011
1
1
10
Carry o acarreo
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Sistemas de Numeración
Resta
101101
0
1
0
0
1
1
1
0
1
11
- 10110
010111
Borrow (deber uno)
101101*1101
Multiplicación
*
0
1
0
0
0
111
1
0
1
1
1
1
1
101101
000000
101101
101101_______
1001001001
División
/
0
1
0
e
e
1
0
1
___1000001
1101 1101010110
-1101
0000010110
- 1101
01001
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Tabla de Suma en base 16 (hexadecimal)
Sistemas de Numeración
+
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
1
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
2
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
3
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
4
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
5
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
6
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
7
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
8
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
9
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
A
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
B
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
C
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
D
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
E
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
F
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Tabla de Multiplicar en base 16 (hexadecimal)
Sistemas de Numeración
*
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
2
0
2
4
6
8
A
C
E
10
12
14
16
18
1A
1C
1E
3
0
3
6
9
C
F
12
15
18
1B
1E
21
24
27
2A
2D
4
0
4
8
C
10
14
18
1C
20
24
28
2C
30
34
38
3C
5
0
5
A
F
14
19
1E
23
28
2D
32
37
3C
41
46
4B
6
0
6
C
12
18
1E
24
2A
30
36
3C
42
48
4E
54
5A
7
0
7
E
15
1C
23
2A
31
38
3F
46
4D
54
5B
62
69
8
0
8
10
18
20
28
30
38
40
48
50
58
60
68
70
78
9
0
9
12
1B
24
2D
36
3F
48
51
5A
63
6C
75
7E
87
A
0
A
14
1E
28
32
3C
46
50
5A
64
6E
78
82
8C
96
B
0
B
16
21
2C
37
42
4D
58
63
6E
79
84
8F
9A
A5
C
0
C
18
24
30
3C
48
54
60
6C
78
84
90
9C
A8
B4
D
0
D
1A
27
34
41
4E
5B
68
75
82
8F
9C
A9
B6
C3
E
0
E
1C
2A
38
46
54
62
70
7E
8C
9A
A8
B6
C4
D2
F
0
F
1E
2D
3C
4B
5A
69
78
87
96
A5
B4
C3
D2
E1
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Sistemas de Numeración
Aritmética con signo
Sea R la base y n el número de casillas o posiciones, entonces Rn es el total de números
sin signo que se pueden representar en base R.
Por ejemplo. Con R=2 n=3 el total de números que pueden ser representados en base 2 utilizando 3
casillas son 8 y el rango es {0,7}, los números son {000, 001, 010, 011, 100, 101, 110, 111}.
{ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 }
Forma general: rango = { 0, Rn-1}
Para números con signo, es necesario utilizar una casilla (la primera) para indicar si el
número es negativo o positivo. Para el ejemplo anterior, el total de números con signo que
podrían representarse serían 8, 4 positivos y 4 negativos, ya que la primera casilla indica el signo
del número, si contiene un 0 es positivo y si contiene un 1 es negativo. Entonces el rango es {-3,3} y
los números son {011,010,001,000,100,101,110,111}.
{ +3 , +2 , +1 ,+0 , -0 , -1 , -2 , -3 } (Signo y magnitud)
En general el rango para cualquier base utilizando números con signo es {-(Rn-1-1),(Rn-11)}
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Sistemas de Numeración
Complemento
El complemento es una forma de representar números negativos.
Si la base es 2, existen dos clases de complementos: complemento a 1 y complemento a
2.
Complemento a 1. Se obtiene cambiando 1’s por 0’s y 0’s por 1’s. Ejemplo: Sea el
número 00111100, su complemento a 1 es: 11000011.
Complemento a 2. Se aplica complemento a 1 al número y luego se suma 1 al
resultado. Ejemplo: Sea el número 0110110 aplicando complemento a 1 obtenemos: 1001001,
después se le suma 1, obteniéndose 1001010
Algoritmo de suma utilizando la representación de números negativos mediante
signo y magnitud.
1.Sean anan-1…a0 y bnbn-1…b0 2 números binarios con signo y magnitud.
2.Tienen signos iguales ? (an=bn)
Si: sumar magnitudes quedando el resultado en cn-1cn-2…c0 , cn  bn  an
No: Comparamos magnitudes y dejamos en cn el signo del mayor. Restamos a la
magnitud mayor la menor y el resultado queda en cn-1cn-2…c0
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Sistemas de Numeración
3. La magnitud de cn-1cn-2…c0 excede el rango ?
Si: Indicar error (overflow – sobreflujo)
No: El resultado esta en cncn-1…c0
Ejemplo: Obtener el resultado de las siguientes sumas binarias a 4 dígitos
1) 5+(-3)=0101+1011 Los signos son diferentes, y la magnitud del primer número es > que la del
segundo, así que restamos 011 de 101 y el signo del resultado será positivo
=0010 Su equivalente decimal es 2
2) (-4)+(-6)=1100+1110 Los signos son iguales, así que se suman magnitudes +100
1110
Error ! Existe overflow
1010
Overflow
Algoritmo de suma algebraica en complemento a 1
1. Tomar el complemento a 1 de los números negativos
2. Sumar los operandos
Nota: El Overflow se genera cuando ya
3. Existe carry? Si: sumar 1 al resultado
no hay lugar para un dígito más.
4. Existe overflow? Si: indicar error
En base binaria corresponde a un
cambio de signo
No: Escribir el resultado
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Sistemas de Numeración
Ejemplo: Utilizar 4 dígitos
(-4) + (-3)= (0100)c1+(0011)c1= 1011+1100= 1 0111 Existe carry
=0111+1=1000
No existe overflow
Algoritmo de suma algebraica en complemento a 2
1. Tomar el complemento a 2 de los números negativos
2. Sumar los operandos
3. Existe overflow? Si: mensaje de error
No: Se toman las primeras n posiciones de derecha a izquierda como resultado
ignorando el carry si es que lo hay.
Ejemplo: (4 dígitos)
7+(-5)= 0111+(0101)c2= 0111+1011= 1 0010 Existe carry, así que el resultado es 0010
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
Conceptos básicos
Operaciones Lógicas
Son aquellas que dan como resultado verdadero o falso.
Donde V es equivalente a 1 y F es equivalente a 0. Para trabajar con este tipo de operaciones se
utilizan tablas de verdad.
Las operaciones lógicas básicas son:
1. Negación (not). Consiste en obtener el complemento a 1 del operando
2. Conjunción (and). La expresión es verdadera solo si todos sus operandos son
verdaderos.
3. Disyunción (or). La expresión es verdadera si al menos uno de sus operandos es
verdadero.
p q
p and q
p q
p or q
p
~p
v v
v
v v
v
v
f
v f
f
v f
v
f
v
f v
f
f v
v
f f
f
f f
f
Negación
Conjunción
Disyunción
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
MC Hilda Castillo Z.
BUAP
ENSAMBLADOR
MC Hilda Castillo Z.
BUAP