0% encontró este documento útil (0 votos)
28 vistas34 páginas

Pe 04 Sistemasnumericos Imp

El documento aborda la máquina de ejecución, los sistemas numéricos y los métodos de conversión en programación estructurada. Se presentan ejemplos de lenguajes de alto nivel y ensamblador, junto con su representación en lenguaje máquina. Además, se discuten diferentes métodos de conversión de sistemas numéricos.

Cargado por

amorenonp
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas34 páginas

Pe 04 Sistemasnumericos Imp

El documento aborda la máquina de ejecución, los sistemas numéricos y los métodos de conversión en programación estructurada. Se presentan ejemplos de lenguajes de alto nivel y ensamblador, junto con su representación en lenguaje máquina. Además, se discuten diferentes métodos de conversión de sistemas numéricos.

Cargado por

amorenonp
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Máquina de ejecución Sistemas numéricos Métodos de conversión

Programación estructurada
Sistemas numéricos

Oscar Alvarado Nava


oan@[Link]
Departamento de Electrónica
División de Ciencias Básicas e Ingenierı́a
Universidad Autónoma Metropolitana, Unidad Azcapotzalco

15-Otoño, septiembre de 2015

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 1/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Contenido

1 Máquina de ejecución
Máquina de ejecución
Lenguajes de la máquina

2 Sistemas numéricos
Sistema numéricos
Notaciones

3 Métodos de conversión
Sustitución de una serie
Método de división entre la base
Método de multiplicación por la base
Cuando la base=2k

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 2/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Máquina de ejecución

Mecanismo de ejecución

RAM

100010100111
001010100110
101010101110

100101100110
111000011111

001111100010

111110100000
sistema
operativo

CPU
pc
001010100110 ir
Control
ALU

HD
encabezado

100010100111
001010100110
101010101110

100101100110
111000011111

001111100010

111110100000

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 3/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Lenguajes de la máquina

Lenguaje de alto nivel: lenguaje C

1 int main()
2 {
3 int x=15;
4 int y=9;
5 int z=0;
6
7 z = x + y;
8
9 return 0;
10 }

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 4/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Lenguajes de la máquina

Lenguaje ensamblador: procesador intel x86

1 .file “suma.c” ;archivo


2 .text ;seccion de texto
3 .globl main ;simbolo global
4 main: .cfi startproc
5 push %ebp ;libera pila
6 mov %esp, %ebp
7 sub $16, %esp
8 movl $15, -4( %ebp)
9 movl $9, -8( %ebp)
10 movl $0, -12( %ebp)
11 mov -8( %ebp), %eax ;carga op1
12 mov -4( %ebp), %edx ;carga op2
13 add %edx, %eax ;suma de datos
14 mov %eax, -12( %ebp) ;almacena resultado
15 mov $0, %eax ;valor de regreso
16 leave ;fin de modulo
17 .cfi restore
18 ret

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 5/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Lenguajes de la máquina

Lenguaje ensamblador y lenguaje máquina

1 .file “suma.c”
2 .text
3 .globl main
4 main: .cfi startproc
5 push %ebp 01010101000000000000000000000000
6 mov %esp, %ebp 10001001111001010000000000000000
7 sub $16, %esp 10000011111011000001000000000000
8 movl $15, -4( %ebp) 11000111010001011111110000001111
9 movl $9, -8( %ebp) 11000111010001011111100000001001
10 movl $0, -12( %ebp) 11000111010001011111010000000000
11 mov -8( %ebp), %eax 10001011010001011111100000000000
12 mov -4( %ebp), %edx 10001011010101011111110000000000
13 add %edx, %eax 00000001110100000000000000000000
14 mov %eax, -12( %ebp) 10001011010001011111010000000000
15 mov $0, %eax 10111000000000000000000000000000
16 leave 11001001000000000000000000000000
17 .cfi restore
18 ret 11000011000000000000000000000000

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 6/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Lenguajes de la máquina

Lenguaje ensamblador y lenguaje máquina

1 .file “suma.c”
2 .text
3 .globl main
4 main: .cfi startproc
5 push %ebp 0101 0101 0000 0000 0000 0000 0000 0000
6 mov %esp, %ebp 1000 1001 1110 0101 0000 0000 0000 0000
7 sub $16, %esp 1000 0011 1110 1100 0001 0000 0000 0000
8 movl $15, -4( %ebp) 1100 0111 0100 0101 1111 1100 0000 1111
9 movl $9, -8( %ebp) 1100 0111 0100 0101 1111 1000 0000 1001
10 movl $0, -12( %ebp) 1100 0111 0100 0101 1111 0100 0000 0000
11 mov -8( %ebp), %eax 1000 1011 0100 0101 1111 1000 0000 0000
12 mov -4( %ebp), %edx 1000 1011 0101 0101 1111 1100 0000 0000
13 add %edx, %eax 0000 0001 1101 0000 0000 0000 0000 0000
14 mov %eax, -12( %ebp) 1000 1011 0100 0101 1111 0100 0000 0000
15 mov $0, %eax 1011 1000 0000 0000 0000 0000 0000 0000
16 leave 1100 1001 0000 0000 0000 0000 0000 0000
17 .cfi restore
18 ret 1100 0011 0000 0000 0000 0000 0000 0000

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 7/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Lenguajes de la máquina

Lenguaje ensamblador y lenguaje máquina en hexadecimal

1 .file “suma.c”
2 .text
3 .globl main
4 main: .cfi startproc
5 push %ebp 5 5 0 0 0 0 0 0
6 mov %esp, %ebp 8 9 e 5 0 0 0 0
7 sub $16, %esp 8 3 e c 1 0 0 0
8 movl $15, -4( %ebp) c 7 4 5 f c 0 f
9 movl $9, -8( %ebp) c 7 4 5 f 8 0 9
10 movl $0, -12( %ebp) c 7 4 5 f 4 0 0
11 mov -8( %ebp), %eax 8 b 4 5 f 8 0 0
12 mov -4( %ebp), %edx 8 b 4 5 f c 0 0
13 add %edx, %eax 0 1 d 0 0 0 0 0
14 mov %eax, -12( %ebp) 8 b 4 5 f 4 0 0
15 mov $0, %eax b 8 0 0 0 0 0 0
16 leave c 9 0 0 0 0 0 0
17 .cfi restore
18 ret c 3 0 0 0 0 0 0

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 8/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Lenguajes de la máquina

Lenguaje ensamblador y lenguaje máquina en hexadecimal

1 .file “suma.c”
2 .text
3 .globl main
4 main: .cfi startproc
5 push %ebp 55000000
6 mov %esp, %ebp 89e50000
7 sub $16, %esp 83ec1000
8 movl $15, -4( %ebp) c745fc0f
9 movl $9, -8( %ebp) c745f809
10 movl $0, -12( %ebp) c745f400
11 mov -8( %ebp), %eax 8b45f800
12 mov -4( %ebp), %edx 8b45fc00
13 add %edx, %eax 01d00000
14 mov %eax, -12( %ebp) 8b45f400
15 mov $0, %eax b8000000
16 leave c9000000
17 .cfi restore
18 ret c3000000

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 9/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Lenguajes de la máquina

Lenguaje ensamblador y lenguaje máquina

1 .file “suma.c”
2 .text
3 .globl main
4 main: .cfi startproc
5 push %ebp 01010101000000000000000000000000
6 mov %esp, %ebp 10001001111001010000000000000000
7 sub $16, %esp 10000011111011000001000000000000
8 movl $15, -4( %ebp) 11000111010001011111110000001111
9 movl $9, -8( %ebp) 11000111010001011111100000001001
10 movl $0, -12( %ebp) 11000111010001011111010000000000
11 mov -8( %ebp), %eax 10001011010001011111100000000000
12 mov -4( %ebp), %edx 10001011010101011111110000000000
13 add %edx, %eax 00000001110100000000000000000000
14 mov %eax, -12( %ebp) 10001011010001011111010000000000
15 mov $0, %eax 10111000000000000000000000000000
16 leave 11001001000000000000000000000000
17 .cfi restore
18 ret 11000011000000000000000000000000

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 10/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Lenguajes de la máquina

Lenguaje ensamblador y lenguaje máquina

1 .file “suma.c”
2 .text
3 .globl main
4 main: .cfi startproc
5 push %ebp 01 010 101 000 000 000 000 000 000 000 000
6 mov %esp, %ebp 10 001 001 111 001 010 000 000 000 000 000
7 sub $16, %esp 10 000 011 111 011 000 001 000 000 000 000
8 movl $15, -4( %ebp) 11 000 111 010 001 011 111 110 000 001 111
9 movl $9, -8( %ebp) 11 000 111 010 001 011 111 100 000 001 001
10 movl $0, -12( %ebp) 11 000 111 010 001 011 111 010 000 000 000
11 mov -8( %ebp), %eax 10 001 011 010 001 011 111 100 000 000 000
12 mov -4( %ebp), %edx 10 001 011 010 101 011 111 110 000 000 000
13 add %edx, %eax 00 000 001 110 100 000 000 000 000 000 000
14 mov %eax, -12( %ebp) 10 001 011 010 001 011 111 010 000 000 000
15 mov $0, %eax 10 111 000 000 000 000 000 000 000 000 000
16 leave 11 001 001 000 000 000 000 000 000 000 000
17 .cfi restore
18 ret 11 000 011 000 000 000 000 000 000 000 000

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 11/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Lenguajes de la máquina

Lenguaje ensamblador y lenguaje máquina en octal

1 .file “suma.c”
2 .text
3 .globl main
4 main: .cfi startproc
5 push %ebp 1 2 5 0 0 0 0 0 0 0 0
6 mov %esp, %ebp 2 1 1 7 1 2 0 0 0 0 0
7 sub $16, %esp 2 0 3 7 3 0 1 0 0 0 0
8 movl $15, -4( %ebp) 3 0 7 2 1 3 7 6 0 1 7
9 movl $9, -8( %ebp) 3 0 7 2 1 3 7 4 0 1 1
10 movl $0, -12( %ebp) 3 0 7 2 1 3 7 2 0 0 0
11 mov -8( %ebp), %eax 2 1 3 2 1 3 7 4 0 0 0
12 mov -4( %ebp), %edx 2 1 3 2 5 3 7 6 0 0 0
13 add %edx, %eax 0 0 1 6 4 0 0 0 0 0 0
14 mov %eax, -12( %ebp) 2 1 3 2 1 3 7 2 0 0 0
15 mov $0, %eax 2 7 0 0 0 0 0 0 0 0 0
16 leave 3 1 1 0 0 0 0 0 0 0 0
17 .cfi restore
18 ret 3 0 3 0 0 0 0 0 0 0 0

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 12/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Lenguajes de la máquina

Lenguaje ensamblador y lenguaje máquina en octal

1 .file “suma.c”
2 .text
3 .globl main
4 main: .cfi startproc
5 push %ebp 12500000000
6 mov %esp, %ebp 21171200000
7 sub $16, %esp 20373010000
8 movl $15, -4( %ebp) 30721376017
9 movl $9, -8( %ebp) 30721374011
10 movl $0, -12( %ebp) 30721372000
11 mov -8( %ebp), %eax 21321374000
12 mov -4( %ebp), %edx 21325376000
13 add %edx, %eax 00164000000
14 mov %eax, -12( %ebp) 21321372000
15 mov $0, %eax 27000000000
16 leave 31100000000
17 .cfi restore
18 ret 30300000000

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 13/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Sistema numéricos

Sistema numérico

Conjunto ordenado de sı́mbolos: dı́gitos


Relaciones para aritmética: suma, resta, multiplicación y
división
La base, r , indica el número de dı́gitos permitidos

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 14/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Sistema numéricos

Sistemas numéricos en computación


Decimal Binario Octal Hexadecimal
Base r = 10 r =2 r =8 r = 16
Dı́gitos 0,1,2,3,4 0,1 0,1,2,3,4 0,1,2,3,4,5,6,7
5,6,7,8,9 5,6,7 8,9,A,B,C,D,E,F
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 15/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Sistema numéricos

Sistema decimal

Base: r = 10
Dı́gitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
operaciones: suma (+), resta (−), multipilicación (∗), división
(/ o ÷)
El punto decimal divide la parte entera y la parte fraccionaria

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 16/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Notaciones

Notación posicional

El número 123. 35, está compuesto de:


1 centena
2 decenas
3 unidades
3 décimas
5 centésimas

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 17/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Notaciones

Notación posicional

En general:

N = (an−1 an−2 · · · a1 a0 .a−1 a−2 · · · a−m )r

donde:
. separa la parte entera de la parte fraccionaria
r base
n número de dı́gitos enteros
m número de dı́gitos fracionarios
ai dı́gito entero cuando n − 1 ≥ i ≥ 0
ai dı́gito fraccionario cuando −1 ≥ i ≥ −m
an−1 dı́gito más siginificativo
a−m dı́gito menos siginificativo

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 18/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Notaciones

Notación polinomial

La cantidad (123. 35)10 se puede escribir de la siguiente forma:

N = 1 × 100+2 × 10+3 × 1+3 × 0. 1+5 × 0. 01

N = 1 × 102 +2 × 101 +3 × 100 +3 × 10−1 +5 × 10−2

En general, se tiene la siguiente ecuación:

n−1
X
N= ai × r i
i=−m

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 19/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Sustitución de una serie

Sustitución de la serie

Al expandir la serie:
n−1
X
N= ai × r i
i=−m
tenemos:
N = an−1 × r n−1 + · · · + a0 × r 0 + a−1 × r −1 + · · · + a−m × r −m

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 20/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Sustitución de una serie

Ejemplo 1: de binario a decimal

Convertir (11010. 11)2 a base 10

1 × 24 + 1 × 23 + 0 × 22 + 1 × 21 + 0 × 20 + 1 × 2−1 + 1 × 2−2

1 × 16+ 1 × 8+ 0 × 4+ 1 × 2+ 0 × 1+ 1 × 0. 5+ 1 × 0. 25

16+ 8+ 0+ 2+ 0+ 0. 5+ 0. 25

26. 75

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 21/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Sustitución de una serie

Ejemplo 2: de octal a decimal

Convertir (456. 5)8 a base 10

4 × 82 + 5 × 81 + 6 × 80 +5 × 8−1

4 × 64+ 5 × 8+ 6 × 1+ 5 × 0. 125

256+ 40+ 6+ 0. 625

302. 625

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 22/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Sustitución de una serie

Ejemplo 3: de hexadecimal a decimal

Convertir (B65F )16 a base 10

B × 163 + 6 × 162 + 5 × 161 + F × 160

B × 4096+ 6 × 256+ 5 × 16+ F × 1

11 × 4096+ 6 × 256+ 5 × 16+ 15 × 1

45056+ 1536+ 80+ 15

46687

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 23/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Método de división entre la base

Llamado método del residuo

Únicamente para la parte entera


Cambio de la base A a la base B, si A > B

Nent = bn−1 × B n−1 + · · · + b1 × B 1 + b0 × B 0

Podemos determinar el dı́gito menos significativo, b0 , si dividimos


por la base:

Nent bn−1 ×B n−1 +···+b1 ×B 1 +b0 ×B 0


B = B

= bn−1 × B n−2 + · · · + b1 × B 0 + b0

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 24/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Método de división entre la base

Conversión de base 10 a base 2 de la parte entera


Convertir (41)10 a base 2

Fracción Cociente entero Residuo Dı́gito


41
2 20 1 b0
20
2 10 0 b1
10
2 5 0 b2
5
2 2 1 b3
2
2 1 0 b4
1
2 0 1 b5

(41)10 = (101001)2
Del bit más significativo al bit menos significativo

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 25/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Método de división entre la base

Conversión de base 10 a base 8 de la parte entera

Ejemplo 4: Convertir (234)10 a base 8

Fracción Cociente entero Residuo Dı́gito


234
8 29 2 b0
29
8 3 5 b1
3
8 0 3 b2

(234)10 = (352)8

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 26/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Método de multiplicación por la base

Llamado método de las fracciones

Cambio de base, de la base A a la base B


Únicamente para la parte fraccionaria de un número
Nfrac = b−1 × B −1 + b−2 × B −2 + · · · + b−m × B −m

Podemos determinar el dı́gito más significativo de la parte


fraccionaira, b−1 , si multiplicamos por la base:

= B × b−1 × B −1 + b−2 × B −2 + · · · + b−m × B −m



Nfrac × B

= b−1 + b−2 × B −1 + · · · + b−m × B −(m−1)

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 27/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Método de multiplicación por la base

Conversión de base 10 a base 2 de la parte fraccionaria

Ejemplo 5: Convertir (0.6875)10 a base 2

Fracción Entero Fracción Dı́gito


0.6875× 2 1 0.3750 b−1
0.3750× 2 0 0.7500 b−2
0.7500× 2 1 0.5000 b−3
0.5000× 2 1 0.0000 b−4

(0.6875)10 =(0.1011)2
Del bit más significativo al bit menos significativo

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 28/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

Método de multiplicación por la base

Conversión de base 10 a base 8 de la parte fraccionaria

Ejemplo 6: Convertir (0.1285)10 a base 8


Fracción Entero Fracción Dı́gito
0.1285× 8 1 0.0280 b−1
0.0280× 8 0 0.2240 b−2
0.2240× 8 1 0.7920 b−3
0.7920× 8 6 0.3360 b−4
0.3360× 8 2 0.6880 b−5
0.6880× 8 5 0.5040 b−6
0.5040× 8 4 0.0320 b−7
0.0320× 8 0 0.2520 b−8

(0.1285)10 =(0.10162540...)8

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 29/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

k
Cuando la base=2

Agrupamiento de dı́gitos binarios

Como 23 = 8 para cada dı́gito octal le corresponden 3 dı́gitos


binarios
Como 24 = 16 para cada dı́gito hexadecimal le corresponden 4
dı́gitos binarios
El reagrupamiento de la parte entera se realiza de derecha a
izquierda a partir del punto
El reagrupamiento de la parte fraccionaria se realiza de
izquierda a derecha a partir del punto

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 30/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

k
Cuando la base=2

Conversión de base 2 a base 8

Convertir (10110001101011.11111010011)2 a base 8.


Como 23 = 8 se necesitan 3 dı́gitos binarios por cada dı́gito octal.
Agrupamos:
(10110001101011.11111010011)2
(26153.7646)8

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 31/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

k
Cuando la base=2

Conversión de base 2 a base 16

Convertir (10110001101011.11111010011)2 a base 16.


Como 24 = 16 se necesitan 4 dı́gitos binarios por cada dı́gito
hexadecimal.
Agrupamos:
(10110001101011.11111010011)2
(2C6B.FA6)16

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 32/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

k
Cuando la base=2

Conversión de base 8 a base 16

Convertir (26153.7406)8 a base 16.


Inicialmente pasamos de base 8 a base 2:
(26153.7406)8 = ( 010 110 001 101 011 . 111 100 000 110)2
Reagrupamos:
( 010 110 001 101 011 . 111 100 000 110)2
(26153.7406)8 =(2C6B.F06)16

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 33/34


Máquina de ejecución Sistemas numéricos Métodos de conversión

k
Cuando la base=2

Conversión de base 16 a base 8

Convertir (AF.16C)16 a base 8.


Inicialmente pasamos de base 16 a base 2:
(AF.16C)16 = ( 1010 1111 . 0001 0110 1100 )2
Reagrupamos:
( 1010 1111 . 0001 0110 1100 )2
(AF.16C)16 =(257.0554)8

Oscar Alvarado Nava UAM Azcapotzalco Programación estructurada 34/34

También podría gustarte