0% encontró este documento útil (0 votos)
112 vistas64 páginas

Ingeniería en Computación: Universidad Autónoma Del Estado de México Centro Universitario UAEM Valle de México

Este documento presenta información sobre sistemas numéricos y conversiones entre bases. Explica los conceptos de sistemas posicionales y no posicionales, y describe los sistemas binario, decimal, octal y hexadecimal. Además, detalla cómo representar valores y realizar conversiones entre bases usando el teorema fundamental de los números y la representación polinomial. Finalmente, proporciona ejemplos de conversiones entre bases binarias y decimales.

Cargado por

Waner
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)
112 vistas64 páginas

Ingeniería en Computación: Universidad Autónoma Del Estado de México Centro Universitario UAEM Valle de México

Este documento presenta información sobre sistemas numéricos y conversiones entre bases. Explica los conceptos de sistemas posicionales y no posicionales, y describe los sistemas binario, decimal, octal y hexadecimal. Además, detalla cómo representar valores y realizar conversiones entre bases usando el teorema fundamental de los números y la representación polinomial. Finalmente, proporciona ejemplos de conversiones entre bases binarias y decimales.

Cargado por

Waner
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

Universidad Autónoma del Estado de México

Centro Universitario UAEM Valle de México

Ingeniería en Computación

Unidad de Aprendizaje: Lenguaje Ensamblador

Tema: Sistemas Numéricos

El abor ó: Dr. en C. Héctor Rafael Or oz co Agui r r e


Octubre de 2016
Propósito de la Unidad de
Aprendizaje
 Programar en lenguaje ensamblador aplicaciones de software o
hardware para tener el control total de un sistema de cómputo utilizando
para dicho aprendizaje un equipo de cómputo (PC) o un
microcontrolador/microprocesador comercial.

 El alumno desarrollará programas en lenguaje ensamblador de uso


práctico para manejar los componentes básicos de un sistema de
cómputo, usando las instrucciones y las metodologías propias del la
estructura del lenguaje ensamblador.

 El alumno deberá realizar, explicar, documentar cada programa


realizado, de tal forma que realce la comprensión de las instrucciones
individuales y el estilo de programación
Contenido

 Organización de datos
 Sistemas numéricos
 Representación de valores
 Conversiones entre sistemas o bases
 Operaciones aritméticas en las bases
 Complementos a 1 y a 2
Guion explicativo

 Esta presentación tiene como fin dar a conocer a los


alumnos los siguientes aspectos:

 ¿Cuáles son los sistemas numéricos que hay?


 ¿Qué es un sistema posicional y no posicional?
 Tipos de notaciones para representación de valores
 Técnicas empleadas para cambios entre bases
 ¿Cómo realizar operaciones aritméticas en las
bases?
 Representaciones en complemento a 1 y a 2 entre
las bases

6
Guion explicativo

 El contenido de esta presentación contiene temas de


interés contenidos en la Unidad de Aprendizaje de
Lenguaje Ensamblador.

 Las diapositivas deben explicarse en orden, y deben


revisarse aproximadamente en 6 horas, además de
realizar preguntas y dejar ejercicios a la clase sobre el
contenido mostrado.

7
Organización de datos

 Las computadoras comprenden el lenguaje


de los números.
 La organización de una computadora
depende entre otros factores del sistema de
representación numérica adoptado.
 Se trabaja con el sistema binario, de donde
proviene el término bit como contracción de
“binary digit o binary digit”.

8
Sistemas numéricos

 Los sistemas de
numeración o
 Números como
sistemas
numéricos son un cantidades:
conjunto de  reales negativos

símbolos que se  reales positivos


utilizan para
 enteros negativos
representar
cantidades según  enteros positivos

ciertas reglas.

9
Sistemas numéricos

 Un sistema de numeración puede


representarse como N = S + R
donde:
 N es el sistema de numeración considerado
 S son los símbolos permitidos en el sistema.
 R son las reglas de generación que nos indican qué
números son válidos y cuáles son no-válidos en el sistema.

10
Sistemas numéricos

 Sistema decimal: Es el sistema de numeración utilizado en la


vida cotidiana, cuya base es diez, utilizando los símbolos 0, 1,
2, 3, 4, 5, 6, 7, 8 y 9.

 Sistema binario: los dos símbolos utilizados son el 0 y el 1, los


que reciben el nombre de bit.

 Sistema octal: de base 8, los símbolos utilizados son 0, 1, 2,


3, 4, 5, 6,7.

 Sistema hexadecimal: de base 16, los símbolos utilizados son


0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

11
Sistemas numéricos

Imagen tomada de: [Link]


12
Sistemas numéricos

Imagen tomada de: [Link]


13
Sistema no posicional

 Sistema de  Los números


numeración no romanos son un
posicional: cada claro ejemplo de
cifra siempre tiene ello.
el mismo valor,
 LX = 50 + 10 = 60
independientemen
 XL = 50 – 10 = 40
te del lugar que
 VI = 5 + 1 = 6
éstas ocupen.
 IV = 5 – 1 = 4

14
Sistema posicional

 Sistema de  El sistema decimal,


numeración el binario, el octal y
posicional: cada el hexadecimal son
los más usados.
cifra tiene un valor
propio y un valor  01112 = 710
según la posición  01112 = 78
en la que se  01112 = 716
encuentra.

15
Teorema fundamental de los
números
 La representación
de una cantidad
en un sistema de  B = base del sistema de
numeración.
numeración  i = posición respecto al punto.

distinto a decimal,  d = número de cifras a la


derecha.
es dado por la  n = Numero de cifras a la
izquierda del numero menos 1.
formula:  X = Cada una de las cifras que
componen el número.

16
Representación de un valor
 Se toma un número b,
base del sistema de
numeración y todo
número N se representa
como la combinación de
potencias de aquel
coeficiente que toman
valores de 0 a b-1, en la
forma:

17
Representación de un valor
 En un sistema de numeración posicional de
base b, la representación de un número se
define a partir de la regla:
(…a3a2a1a0.a-1 a-2 a-3 …)b= …+ a2b2+ a1b1+ a0b0+ a-1b-1+ a-2b-2+ a-3b-3+ …

 b es un entero no negativo mayor a 1 y cuando los ai


pertenecen al conjunto de enteros en el rango 0 ≤ai< b
 El punto que aparece entre los dígitos a0 y a-1 se denomina
punto fraccionario.
 Cuando b = 10 se le llama punto decimal y cuando b = 2,
punto binario.

18
Representación de un valor
 Entonces este número
se denota
abreviadamente:

 Este caso expresa que el


valor de cada cifra depende
del lugar que ocupa.

19
Representación yuxtaposicional

 Los dígitos más a  El que se encuentra


más a la izquierda se
la izquierda y más denomina como el dígito
a la derecha más significativo (MSD).
tienen una valor
significativo.  El que se encuentra
más a la derecha se
denomina como el dígito
menos significativo
(LSD).

20
Representación yuxtaposicional

 (195950.715)10

 Base del sistema  Parte entera n = 6


numérico b = 10. dígitos.

 Parte decimal m = 3
dígitos.

21
Representación polinomial

 Cualquier número  424.5910


N puede ser
 N = 424.5910
escrito como un = 4*102 + 2*101
polinomio en + 4*100 + 5*101
potencias + 9*10-2
de la base.

22
Conversiones ente sistemas o
bases
• Sea el número akak-1….a1, un entero en base R. Para convertir este número de
base R a base Q se utiliza la conversión:

akRk-1+ak-1Rk-2+…+a1R0

• 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 ( )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
Finalmente obtenemos que: (100110)2  (38)10

23
Conversiones ente sistemas o
bases
Convertir 1001102  ?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
Por lo tanto: 1001102  3810

24
Conversiones ente sistemas o
bases
• Ejercicios en clase:

• 1111111001102  ?10
• 1010100001102  ?10
• 1000111001102  ?10
• 1001100111102  ?10

25
Conversiones ente sistemas o
bases
Convertir 43025  ?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 ende,
se necesitan las tablas de suma y multiplicación en
base 3.
+ 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

26
Conversiones ente sistemas o
bases
43025 = 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 221*12 11122*11 221*10 200112


101 1212 11122 000 + 2210
12 221 11122 221 2
221 11122 200112 2210 210101

Se tiene por consiguiente que: 43025  2101013

27
Conversiones ente sistemas o
bases
• Ejercicios en clase:

• 34205  ?3
• 325  ?3
• 4205  ?3
• 305  ?3

28
Conversión de base X a base 10 (X  10)

Algoritmo A.
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
I num R a4 a a a k
Convertir 43025  ?10 3 2 1
4 0 5 4 3 0 2 4
3 4
2 23
1 115 Por lo tanto: 43025  57710
0 577

29
Conversión de base 10 a base S (S  10)

Algoritmo B.
1. i1, q0, p 0 Donde x inicialmente es el número a
2. Repetir convertir, s es la nueva base y ai es el i-
ésimo dígito del número en base s
q [x/s] (parte entera)
tomando el orden akak-1…a1
p x-q*s (residuo)
ai p, i i+1, x  q
hasta q=0 x q p ai i s
57 0 0 1 3
3. Fin
7
19 19 1 1 2
Convertir 57710  ?3 2 2
64 64 0 0 3
21 21 1 1 4
Se concluye que: 57710  2101013 7 7 0 0 5
2 2 1 1 6
0 0 2 2 7

30
Conversión de base X a base 10 (X  10)

Números fraccionarios
Algoritmo C.
1. im, num0 Donde m es el número de dígitos que
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 i num m R b b2 b3
3. Fin 1
3 0 3 16 A 0 6
2 .375
Convertir .A0616  ?10
1 .023437
5
0 .626464
84
Por lo tanto: .A0616  .6264648410

31
Conversión de base 10 a base S (S  10)

Números fraccionarios
Donde m es el número de dígitos que se
Algoritmo D. desean obtener, x es el número a
1. i1 convertir inicialmente, s es la nueva
2. Mientras i  m hacer base y bi es el i-ésimo dígito del número
en base s tomando el orden b1b2…bm
x x*s
y [x] (parte entera) i x y b m s
x x-y, bi y, i  i+1 i
1 .62646484 3 7
fin_mientras
4.3852538 4
3. Fin 8
2 .38525388 4
Convertir .6264648410  ?7 2.6967771 2
6
Se tiene que: .6264648410  .4247 3 .69677716 2
4.8774401 4
2
4 .87744012 4

32
Método de restas sucesivas

Represar 10410 en base 3

104 - 81 = 23 , 81 = 34 x 1
23 - 0 = 23 , 0 = 33 x 0
23 - 18 = 5 , 18 = 32 x 2
5 - 3 = 2 , 3 = 31 x 1
2 - 0 = 2 , 0 = 30 x 2

10410 = 102123

33
Método de restas sucesivas
• Ejercicios en clase:

• 1342010  ?3
• 53210  ?8
• 42010  ?2
• 73010  ?16

34
Método del resto de cocientes

Represar 10410 en base 3

104 % 3 = 2 , 104 / 3 = 34
34 % 3 = 1 , 34 / 3 = 11
11 % 3 = 2 , 11 / 3 = 3
3%3=0, 3/3= 1
1%3=1, 1/3= 0

10410 = 102123

35
Método del resto de cocientes

Mediante la siguiente tabla se puede entender


mejor cómo represar 10410 en base 3

Leídos de abajo hacia arriba


Dividendo Divisor Cociente Residuo
104 3 34 2
34 3 11 1
11 3 3 2
3 3 1 0
1 3 0 1

10410 = 102123
Escritos de izquierda a derecha

36
Método del resto de cocientes
• Ejercicios en clase:

• 1342010  ?3
• 53210  ?8
• 42010  ?2
• 73010  ?16

37
Método de restas sucesivas para
fracciones

Represar 0.430410 en base 5

0.4304 – 0.4000 = 0.0304 , 0.4000 = 5-1 x 2


0.0304 – 0.0000 = 0.0304 , 0.0000 = 5-2 x 0
0.0304 – 0.0240 = 0.0064 , 0.0240 = 5-3 x 3
0.0064 – 0.0064 = 0.0000 , 0.0064 = 5-4 x 4

0.430410 = 0.20345

38
Método de restas sucesivas para
fracciones
• Ejercicios en clase:

• 0.125010  ?2
• 0.430010  ?8
• 0.250010  ?5
• 0.635010  ?16

39
Método del resto de cocientes
para fracciones

Represar 0.430410 en base 5

0.4304 x 5 = 2.1520
0.1520 x 5 = 0.7600
0.7600 x 5 = 3.8000
0.8000 x 5 = 4.0000

0.430410 = 0.20345

40
Método del resto de cocientes
para fracciones
• Ejercicios en clase:

• 0.125010  ?2
• 0.430010  ?8
• 0.250010  ?5
• 0.635010  ?16

41
Inexactitud para fracciones

Las fracciones no siempre pueden ser


convertidas en forma exacta, con una
expresión finita.
(0.3)3 = 2 * 3-1 = 2 + 1/3

En definitiva, las fracciones en una base


sólo pueden ser estimadas como una
expresión finita en otra.
42
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.

43
Conversión de potencias de 2
Convertir 1110010100.0110112  ?16

16 = 24
Se agregaron dos ceros a la derecha
0011 1001 0100 . 0110 1100
3 9 4 6 C

Por lo tanto: 1110010100.0110112  394.6C16

44
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.

7402.618  ?2
8 = 23
7 4 0 2 . 6 1
111100 000 010 110 001
7402.618  111100000010.1100012

45
Conversiones ente sistemas o
bases

Imagen tomada de: [Link]

46
Conversiones ente sistemas o
bases
Base 10 Base 2 Base 8
0 000 0
1 001 1
2 010 2
3 011 3
4 100 4
5 101 5
6 110 6
7 111 7

47
Conversiones ente sistemas o
bases
Base 10 Base 2 Base 16 Base 10 Base 2 Base 16

0 0000 0 8 1000 8

1 0001 1 9 1001 9

2 0010 2 10 1010 A

3 0011 3 11 1011 B

4 0100 4 12 1100 C

5 0101 5 13 1101 D

6 0110 6 14 1110 E

7 0117 7 15 1111 F

48
Operaciones aritméticas en base 2
111
101101
+ 0 1 División
Suma 0 0 1 +10110
1 1 10 1000011
/ 0 1
Carry o acarreo 0 e 0
1 e 1
Resta 101101 ___1000001
- 0 1 1 11
- 10110 1101 1101010110
0 0 1
-1101
1 1 0 010111 0000010110
Borrow (deber uno) - 1101
01001
Multiplicación 101101*1101
111
1 101101
* 0 1 1
0 0 0 1
000000
1 0 1 1
101101
101101_______
1001001001

49
Conversión de números con signo
 Para la magnitud con signo, el bit más a la
izquierda es usado como indicador de signo. 1
implica que el número es negativo, 0 que es
positivo.

 Si se usan números de 8 bits, se va a poder representar el


rango [-(27-1), 27-1]. En general, sobre números de n bits se
puede representar el rango [-(2(n-1)-1), 2(n-1)-1].

 La suma es igual que en el sistema decimal,


incluyendo el concepto de acarreo.

50
Conversión de números con signo

En caso de llegar con


un acarreo al bit 8,
existe una situación
de overflow.

51
Conversión de números con signo
 El complemento de un número se
obtiene restándo dicho número al
número más grande que puede
representarse con el tamaño del número
o palabra con que se cuenta.
 El acarreo se suma al dígito menos
significativo.
 El complemento a r en d dígitos del
número N es (rd-1)-N.
52
Conversión de números con signo

-5210 = 99910 – 5210 = 94710


16710 – 5210 = 16710 + 94710
= 11410 + 110 = 11510

53
Conversión de números con signo

 Para el complemento a 1, la idea es igual a


la vista en base 10. En este caso, el rango
representado es el mismo que el que se
tiene para una magnitud con signo.

-1012 = 11112 – 01012 = 10102

Nota: el complemento a 1 de un número


binario es invertir los dígitos.

54
Conversión de números con signo
 En el caso del complemento a 2, la idea detrás
de este método es la misma que se presentó
como complemento a 1, salvo que se realizerá la
resta sobre el menor número que resulta mayor a
todos los números representables con el tamaño
de número o palabra con el que se cuenta:

 El rango representable con complemento a 2 es [-(2n-1),


2n-1-1]
 El complemento a r en d dígitos del número N es rd-N si
N distinto de 0 y 0 en caso contrario.

55
Conversión de números con signo

-1012 = 100002 – 001012 = 10112

Nota: complemento a 2 no es
más que complemento a 1, más 1.

56
Representación decimal de un
número en complemento a 2

 Para los positivos es trivial, se hace lo


que visto anteriormente, evaluando el
polinomio que corresponda a la
expresión binaria.

57
Algoritmo de suma utilizando la representación de
números negativos mediante signo y magnitud

[Link] anan-1…a0 y bnbn-1…b0 2 números binarios con signo y magnitud.

[Link] signos iguales ? (an=bn)


Si: sumar magnitudes quedando el resultado en cn-1cn-2…c0 , cn  bn
 an
No: Compar magnitudes y dejar en cn el signo del mayor. Restar a la
magnitud mayor la menor y el resultado queda en cn-1cn-2…c0

3. La magnitud de cn-1cn-2…c0 excede el rango ?


Si: Indicar error (overflow – sobreflujo)
No: El resultado está en cncn-1…c0

58
Algoritmo de suma utilizando la representación de
números negativos mediante signo y magnitud

Obtener el resultado de las siguientes sumas binarias a 4 dígitos:

• 510+(-3) 10 = 01012+10112 = 0010, su equivalente decimal es 2


• 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

+100
• -410 + (-6) 10 = 11002 + 11102 = 10102 1110
Nota: El Overflow se genera
1010
Overflow cuando ya no hay
lugar para un dígito
• Los signos son iguales, así que se suman magnitudes más. En base binaria
corresponde a un
Error ! Existe overflow cambio de signo

59
Algoritmo de suma algebraica en complemento a 1

[Link] el complemento a 1 de los números negativos


[Link] los operandos
[Link] carry? Si: sumar 1 al resultado
[Link] overflow? Si: indicar error
No: Escribir el resultado

Utilizando 4 dígitos
(-4)10 + (-3) 10 = 0100 2c1 + 00112c1 = 10112 + 11002 = 1 0111 Existe carry
= 01112 +12 = 10002 No existe overflow

60
Algoritmo de suma algebraica en complemento a 2

[Link] el complemento a 2 de los números negativos


[Link] los operandos
[Link] 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.

Tomando 4 dígitos

710 + (-5) 10 = 01112 + 01012c2 = 01112+10112 = 1 00102


Existe carry, así que el resultado es 0010

61
Representación decimal de un
número en complemento a 2
 En el caso de los negativos, se debe
hacer el procedimiento inverso

 Se invierten los bits,


 Se suma 1,
 Se convierte a decimal
 Se le coloca el signo – adelante

 Esto es equivalente a obtener el


complemento a 1 y sumarle 1.

62
Actividades reto

 Realice en  Realice otro


lenguaje C un programa en C
programa que para realizar
permita hacer sumas, restas,
conversiones de multiplicaciones y
números entre las divisiones de
distintas bases. valores binarios.

Para obtener los programas, favor de escribir a: hrorozcoa@[Link]

63
Referencias

 Null, L. and J. Lobur. The Essentials of Computer Organization


and Architecture, Jones and Bartlett Publishers, Feb. 2003

 Kip, I. Lenguaje ensamblador para computadoras basadas en


Intel, Pearson, Quinta edición.

 Willian H. Murray III Chris H. Pappas. Programación en


lenguaje ensamblador, McGraw-Hill.

64

También podría gustarte