Download Sistemas de Numeración - Beatriz Beltrán Martínez

Document related concepts

Sistema octal wikipedia , lookup

Notación posicional wikipedia , lookup

Raíz mixta wikipedia , lookup

Sistema de numeración decimal wikipedia , lookup

Sistema de numeración wikipedia , lookup

Transcript
Benemérita Universidad Autónoma
de Puebla
Facultad de Ciencias de la Computación
E N SAMBL ADOR
M C BEAT R IZ BE LT RÁ N M A RT ÍNEZ
Sistemas de
Numeración
M C BEAT R IZ BE LT RÁ N M A RT ÍNEZ
OTOÑ O 2 0 1 6
Introducción
Un sistema de numeración es un conjunto de símbolos y
reglas de generación que permiten construir todos los
números válidos en el sistema.
Un sistema de numeración puede representarse como: N
=(S,R)
donde:
◦ N es el sistema de numeración considerado.
◦ S es el conjunto de símbolos permitidos en el sistema.
◦ R son las reglas que nos indican qué números son válidos
en el sistema, y cuáles no.
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
3
Introducción
Estas reglas son diferentes para cada sistema de
numeración considerado, pero una regla común a todos es
que para construir números válidos en un sistema de
numeración determinado sólo se pueden utilizar los
símbolos permitidos en ese sistema.
Para indicar en qué sistema de numeración se representa
una cantidad se añade como subíndice a la derecha el
número de símbolos que se pueden representar en dicho
sistema.
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
4
Representación
Sea R (base o radio) un número mayor o igual que 2,
entonces pueden representarse números entero no
negativos como una cadena de dígitos escogidos entre 0, 1,
2, ..., R-1.
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 dígitos={0,1,2}
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
5
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 1
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).
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
6
Conversión entre Bases
Convertir (100110)2  (
)10
◦ R=2, k=6, Q=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
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
7
Conversión entre Bases
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.
4*53+3*52+0*51+2*50 =
11*123+10*122+2*120 =
En Base 3
11*11122+10*221+2*1 =
200112+2210+2 = 210101
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
8
Conversión entre Bases
+
0
1
2
*
0
1
2
0
0
1
2
0
0
0
0
1
1
2
10
1
0
1
2
2
2
10
11
2
0
2
11
12*12
101
12
221
MC Beatriz Beltrán Martínez
221*12
1212
221
11122
ENSAMBLADOR
OTOÑO 2016
9
Conversión entre Bases
Para pasar un número entero N de base 10 a base R se
deben realizar las siguientes operaciones:
◦ Dividir el número N en base 10 entre la base a convertir.
◦ Se toma el cociente Ci y se vuelve a dividir entre la base.
◦ Este proceso se continua hasta que el cociente Cn sea
menor que R.
◦ El número en base 10, se toma primero el último cociente
obtenido (Cn) y de ahí del último residuo al primero.
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
10
Conversión entre Bases
C1
C2
R N
R C1
bm
Cn
…
bm-1
R Cn-1
b1
Donde Cn<R
El número en base R es:
Cn b1 … bm-1 bm
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
11
Conversión entre Bases
Convertir (541)10 ( )3.
180
3 541
24
60
3 180
20
6
2
3 60
3 20
3 6
00
2
0
00
01
Por lo que (541)10 (202001)3.
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
12
Conversión entre Bases
Para convertir la parte fraccionaria 0.d de base 10 a base R,
se procede:
◦ Se toma la fracción 0.d y se multiplica por la base.
◦ Del resultado obtenido di.bi se vuelve a tomar la fracción
0.bi y se procede de igual manera.
◦ Este proceso se puede continuar en n – iteraciones o bien
cuando la parte entera di sea cero.
◦ La parte entera di de los resultados, va a conformar la
fracción en base R.
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
13
Conversión entre Bases
0.d * R = d1.b1
0.b1 * R = d2.b2
…
0.bt * R = dt+1.bt+1
Donde dt+1 puede ser cero.
La fracción en base R es:
0.d1 d2 d3 … dt dt+1
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
14
Conversión entre Bases
Convertir (0.75)10  ( )2.
0.75 * 2 =1.5
La parte decimal ya es cero
0.5 * 2 = 1.0
Por lo que (0.75)10  (0.11)2.
Convertir (0.256)10  ( )7.
0.256 * 7 = 1.792
0.792 * 7 = 5.544
0.544 * 7 = 3.808
Por lo que (0.256)10  (0.153)7
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
15
Conversión entre Bases
Conversión de números de base R a base 10 (donde R10).
Algoritmo 1. (akak-1 …a2a1)R
◦ (Regla de Horner para la evaluación de polinomios)
1. i  k, num  0
2. Mientras i>=1 hacer
num  num*R+ai
i  i-1
fin_mientras
3. Fin
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
16
Conversión entre Bases
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
q  [x/s] (parte entera)
p  x-q*s (residuo)
ai  p, i  i+1, x  q
hasta q=0
3. Fin
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
17
Conversión entre Bases
Conversión de números de base X a base 10 (donde X 
10). Algoritmo 3. (0.b1b2 … bm)X
◦ Números fraccionarios
1. i  m, num  0
2 .Mientras i>=1hacer
num  (num+bi)/X
i  i-1
fin_mientras
3. Fin
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
18
Conversión entre Bases
Conversión de números de base 10 a base S (donde S 
10). Algoritmo 4.
◦ Números fraccionarios
1. i  1
2. Mientras i <= m hacer
x  x*s
y  [x] (parte entera)
x  x-y, bi  y, i  i+1
fin_mientras
3. Fin
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
19
Conversión entre Bases
Conversión de potencias de 2
◦ Para convertir números de base 2 a base k=2x donde x>1
y es un número entero, se llevan a cabo los siguientes
pasos:
◦ 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.
◦ 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.
◦ Se sustituyen los grupos por los dígitos
correspondientes en la base k.
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
20
Conversión entre Bases
(1110010100.011011)2  ( )16
Donde 16=24
0011 1001 0100 . 0110 1100
3
9
4 . 6
C
◦ Por lo que (1110010100.011011)2  (394.6C)16
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.
(7402.61)8  ( )2
Donde 8=23
7 4
0
2 . 6
1
111 100 000 010 . 110 001
◦ Por lo que (7402.61)8  (111100000010.110001)2
MC Beatriz Beltrán Martínez
ENSAMBLADOR
OTOÑO 2016
21