Otros métodos de conversión

Anuncio
Secuencia de dígitos
𝑑
𝑛 𝑑𝑛−1 𝑑𝑛−2…….. 𝑑 0
↓
↓
𝑀𝑆𝐵
𝐿𝑆𝐵
Donde MSB= Most Significant Digit
LSB=Least Significant Digit
Donde el valor del entero positivo se obtiene:
𝒅𝒏 . 𝒃𝒏 + 𝒅𝒏−𝟏 . 𝒃𝒏−𝟏 + ⋯ … + 𝒅𝟎 𝒃𝟎
(1)
Ejemplo:
El número 4305 en el sistema numérico de base 10 es:
4𝑥103 + 3𝑥102 + 0𝑥101 + 5𝑥100
4000 + 300
+ 0
+ 5
Cuatro sistemas numéricos son de particular importancia para la computadora:
Base 2: Binaria ={0,1} B
Base 8:Octal={0,1,2,3,4,5,6,7}Q
Base 10:Diez={0,1,2,3,4,5,6,7,8,9}D
Base 16:Hexadeciamal={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}H
Base Hexadecimal
A
B
C
D
E
F
Ejemplos: Convertir las siguientes expresiones en base 10
Base Diez
10
11
12
13
14
15
A) 3𝐹𝐴0416 = ( )10
B) 1101112 = ( )10
C) 34568 = ( )10
D) 121134 = ( )10
ENTEROS POSITIVOS FRACCIONARIOS
El desarrollo anterior es adecuado sólo para enteros positivos. Para representar
valores fraccionales debe ser expandida la formula (1) para que incluya exponentes
negativos.
Un número con parte fraccional está representado por el conjunto de dígitos siguiente:
𝑑𝑛 𝑑𝑛−1 𝑑𝑛−2…….. 𝑑0 . 𝑑−1 𝑑−2 𝑑−3 … ….
El valor del entero positivo incluyendo su parte fraccional esta dado por:
𝒅𝒏 . 𝒃𝒏 + 𝒅𝒏−𝟏 . 𝒃𝒏−𝟏 + ⋯ … + 𝒅𝟎 𝒃𝟎 + 𝒅−𝟏 . 𝒃−𝟏 + 𝒅−𝟐 . 𝒃−𝟐 + 𝒅−𝟑 . 𝒃−𝟑 … … …
Ejemplo: Convertir (110.111)2 = (
)10
Ejercicios: Convertir las siguiente bases a base 10
a) (.325)6 = ( )10
b) (144)8= ( )10
c) (111011.111)2=(
d) (12AF.DE)16=(
)10
)10
CONVERSION DE BASE 10 A CUALQUIER BASE
Dado X, que es un entero en base 10 y se desea obtener un número Y en base C. El
número Y estará compuesto por los dígitos 𝑦𝑛 𝑦𝑛−1 𝑦𝑛−2 … . . 𝑦1 𝑦0 , entonces el
número X podrá ser expresado en términos de estos dígitos tal como sigue:
𝑋 = 𝑦𝑛 . 𝑐 𝑛 + 𝑦𝑛−1 . 𝑐 𝑛−1 + ⋯ + 𝑦1 . 𝑐1 + 𝑦0
Algoritmo
1) Dividir X entre la base deseada (C)
2)
𝑋
𝐶
= (𝑦𝑛 . 𝑐 𝑛−1 + 𝑦𝑛−1 . 𝑐 𝑛−2 + ⋯ + 𝑦1 . 𝑐 0 ) +
= Q1 +
𝑦0
𝐶
𝑦0
𝐶
3) Los términos entre paréntesis son múltiplos de potencias de C y de ahí que
sean divisibles entre C.
4) El número y0, es un número menor que C, por lo tanto representa el residuo de
la división de X/C. Por lo tanto el primer dígito de Y es el residuo obtenido al
dividir X/C.
5) Una vez obtenido y0, el siguiente dígito es y1, que se puede obtener al dividir
nuevamente Q1 por C , y así sucesivamente hasta que un cociente cero sea
obtenido.
Ejemplo: Convertir (53)10=(
)8
53/8 = 6 + 5/8  y0= 5
6/8 = 0 + 6/8  y1= 6
Ejercicios: Convertir a la base indicada
a)
b)
c)
d)
e)
(100)10= ( )8
(53)10= ( )2
(1531)10=( )6
(82)9=( )7
(123)7=( )3
CONVERSIÓN DE UNA FRACCIÓN DE BASE 10 A CUALQUIER BASE
Sea X una fracción representada en un sistema numérico de base 10. Para obtener la
correspondiente fracción Y en un sistema numérico de base C, donde Y estará
compuesto por los dígitos 𝑦−1 𝑦−2 𝑦−3 … … . 𝑦−𝑚 , donde el número X puede ser
expresado en términos de estos dígitos:
𝑋 = 𝑦−1 . 𝑐 −1 + 𝑦−2. . 𝑐 −2 + … … + 𝑦−𝑚 . 𝑐 −𝑚
Algoritmo:
a) Multiplicar X por C
𝐶𝑋 = 𝑦−1 + (𝑦−2. . 𝑐 −1 + … … + 𝑦−𝑚 . 𝑐 −𝑚+1 = 𝑦−1 + 𝐹1
b) El primer dígito obtenido es y-1
c) El siguiente dígito puede ser obtenido de manera semejante sólo que ahora se
debe multiplicar F1 por C, reteniendo la parte entera y así sucesivamente.
d) Cuando el valor fraccional llegue a cero, entonces el proceso termina.
Ejemplo: convertir (.609375)10= (
)4
Ejercicios: Convertir
a) (.5)10 = (
b) (.80)10=(
c) (.34)10=(
)2
)2
)3
MÉTODOS CORTOS DE CONVERSIÓN
Los números 8 y 16 son potencias de 2
a) La conversión binario-octal y octal y binario involucra 3 bits (23 = 8)
b) La conversión binario-hexadecimal y hexadecimal-binario involucra 4 bits
(24 = 16)
Ejemplos:
Sean las siguientes equivalencias en binario
Equivalencias
0
1
2
3
4
5
6
7
3 bits
000
001
010
011
100
101
110
111
4 bits
0000
0001
0010
0011
0100
0101
0110
0111
8
9
10
11
12
13
14
15
Convertir el número binario 0101011111001101B a octal y hexadecimal
1000
1001
1010
1011
1100
1101
1110
1111
0 101 011 111 001 101
binario
0 5 3
octal
7
1
5
0101 0111 1100 1101
5
7
C
D
Forma rápida para convertir de decimal a binario
128
64
32
16
8
4
2
1
8
0
4
0
2
1
1
1
Ejemplo: Convertir (83)10 =( )2
128
0
64
1
32
0
16
1
Operaciones con números binarios
SUMA BINARIA
𝑀
Sean dos números M y N a los cuales se desea obtener su suma + 𝑁
Reglas:
0
0
0
+
Ejemplos:
+ 110101101
011101110
1010011011
RESTA BINARIA
1
0
1
+
0
+
1
1
1
1
10
+
+ 01010001
01000110
10010111
Sean M y N dos números a los cuales se desea obtener su resta, es decir
Reglas
−
0
0
0
1
0
1
−
1
−
1
0
0
1
11
−
Ejemplos:
1101
1001
0100
−
100000
011111
000001
−
10111010
01011111
01011011
−
MULTIPLICACIÓN BINARIA
Sean M y N dos números a los que se quiere multiplicar tal que M*N =P
REGLAS DE MULTIPLICAR
∗
EJEMPLOS
1
0
0
∗
1
1
1
∗
0
1
0
∗
0
0
0
−𝑀
𝑁
𝑆
11011
111
11011
11011
11011
__________________
10111101
∗
EJERCICIO: 10101*1011
DIVISIÓN BINARIA
𝑀
Se desea dividir dos números M y N tal que 𝑁
En este caso no hay reglas
Ejemplo:
10011
1
= 11 +
110
110
Ejercicio: Dividir
100010010
=
1101
Otros métodos de conversión
Conversión de decimal a binario
Método por descomposición y residuos
Algoritmo
1.- Se tiene en cuenta si el número es par o impar, colocando un 1 si es impar o 0 si es
par.
2.- Se halla la mitad del número, luego se repiten estos pasos hasta que el resultante
sea menor que la base.
Ejemplo: Convertir (25)10=( 11001 )2
25 1
12 0
6 || 0
3 1
{1
}
Ejercicio: (34)10=(
)2
MÉTODO POTENCIA CERCANA
1.-Se busca la potencia más cercana al número y se le resta
2.- Se repite el procedimiento hasta que el resultante sea menor que la base
3.- Cada potencia representa los bits significativos del número
Ejemplo: 24 =
−25
16
9
2 3 −8
= 1
20
− − − − −−→
4 3 2 1 0
(2 2 2 2 2 )
1 1 0 0 1
Ejercicio: Resolver para (34)10= ( )2
Conversión de Hexadecimal a Decimal
Para convertir el número hexadecimal A7B8 a un número hexadecimal, inicie con el
dígito hexadecimal de más a la izquierda (A), de forma continua, multiplique cada
dígito hexadecimal por 16 y acumule los resultados.
Pasos:
Primer dígito: A(10)
10
∗16
160
Multiplicar por 16
Sumar el dígito siguiente,( 7)
+7
167
Multiplicar por 16
Sumar el dígito siguiente, B(11)
Multiplicar por 16
Sumar el siguiente dígito, 8
Ejercicio: Convertir (3A3B)16= (
∗16
2672
+11
2683
∗16
42928
+8
42936
)10
OPERACIONES ARITMÉTICAS ENTRE BASES
12124
0214
12334
+
12124
∗
0214
1212
3030
−−−−
321124
BASE 10
0
1
2
3
4
5
6
7
8
9
10
11
12
BASE 4
0
1
2
3
10
11
12
13
20
21
22
23
30
BASE 8
0
1
2
3
4
5
6
7
10
11
12
13
14
7238
∗ 15
4437
723
−−−−
13667
1𝐹23
2𝐵𝐴
21𝐷𝐷
+
3𝐴𝐵
3
= 4𝐸 +
𝐶
𝐶
NÚMEROS CON SIGNO
Supongamos que se tiene una computadora, cuya longitud de palabra es de 4 bits. Con
4 bits podemos obtener 16 (24) combinaciones de bits.
Si sólo manejamos números enteros, podemos representar enteros del 0 al 15; sin
embargo si manejamos números negativos, algunas combinaciones deberán
representar a dichos números.
Para tener un sistema balanceado, tomemos la mitad de combinaciones como
números positivos y la otra mitad como números negativos, tal como se índica:
0, 1, 2,….., 7 Números positivos
-1, -2, -3, …,-7 Números negativos
Número Decimal
+0
+1
+2
+3
+4
+5
+6
+7
Asignación de bits
0000
0001
0010
0011
0100
0101
0110
0111
Número Decimal
-0
-1
-2
-3
-4
-5
-6
-7
El dígito más significativo para los números positivos es cero
El dígito más significativo para los números negativos es uno
Asignación de bits
1000
1001
1010
1011
1100
1101
1110
1111
Nota: inconveniente la existencia de 2 tipos de cero.
Solución:
Complemento a 2’s y Complemento a 1’s
Con el esquema del complemento a dos, hay una sola representación del cero
Binario
0000
0001
0010
0011
0100
0101
0110
0111
2’s
0
+1
+2
+3
+4
+5
+6
+7
1’s
+0
+1
+2
+3
+4
+5
+6
+7
Binario
1000
1001
1010
1011
1100
1101
1110
1111
2’s
-8
-7
-6
-5
-4
-3
-2
-1
1’s
-7
-6
-5
-4
-3
-2
-1
-0
FÓRMULA PARA OBTENER EL COMPLEMENTO A 2
𝑋 ∗ = 𝑏 𝑛 − |𝑋|
X=número original n= número de dígitos
b=base
FÓRMULA PARA OBTENER EL 1´S
𝑋 ∗ = 𝑏 𝑛 − 1 − |𝑋|
X=número original n= número de dígitos
b=base
Ejemplos: Hallar el 2’s de 6 (0110). Se asume que el número tiene 4 bits en longitud
𝑋 ∗ = 24 − |6| = 16 − 6 = 10
104-|0110|=10000-0110=1010
Hallar el 1’s de 6
𝑋 ∗ = 24 − 1 − |6| = 16 − 6 = 10
104-1-|0110|=10000-0001-0110=1001
Ejercicios: Hallar el complemento a 10’s de 235
n=3
𝑋 ∗ = 103 − |235| = 1000 − 235 = 765
Hallar el complemento a 9 de 235.
MÉTODO FÁCIL DE CONVERSIÓN DEL 2’S
ALGORITMO
a) Invertir la cadena de ceros y unos (1->0 y 0->1)
b) Al resultado obtenido en a) sumarle la unidad.
Ejemplo:
6 → 0110 → invertir →
+1001
0001
1010
Ejercicio: Hallar el 2’s de -6, 7 y 4
MÉTOD FÁCIL PARA HALLAR EL 1’S
ALGORITMO:
Invertir cadena de ceros y unos (1-> 0 y 0->1)
Ejemplo: Hallar el complemento a uno de 6
6 → 0110 → invertir → 1001
Ejercicio: Hallar el 1’s de 7, -6 y 4
OPERACIONES ARITMÉTICAS EN 2’S
+5
−7
−2
+
0101
+
1001
1110
−2
Ejercicios (2’s): +5
−3
−2
OPERACIONES ARITMÉTICAS EN 1’S
+5
−7
−2
+
0101
+
1000
1101
−2
Ejercicios (1’s): +5
−3
−2
SOBREFLUJO
En un sistema de computo cuyos registros almacenan 8 bits, el mayor número
positivo es +127 (01111111B o 7FH) y el menor número negativo es de -128
(10000000B o 80H).
Cuando se suman dos números del mismo signo o se restan dos números de signo
distinto, es factible exceder los límites (-128 a 127) y obtener resultados
incorrectos (OVERFLOW).
Los microprocesadores suelen detectar los errores de sobre flujo, generados
cuando se suman o restan números con signo, verificando el acarreo producido en
las posiciones de los bits más significativos (bits 6 y 7).
Ejemplo:
0101
+0111
0100 0001
1010
+1100
1001 0110
En el primer ejercicio se suman dos números positivos y el resultado es un número
negativo. En el segundo ejercicio sumamos dos números negativos y el resultado es
un número positivo.
Nota: en ambos casos el problema es que se excedió el rango de los enteros (24), lo
cual se considera como un sobre flujo (overflow).
Existirá error de sobre flujo cuando solamente en una de las dos posiciones se
genere acarreo.
Ejemplo:
0111 1100
0000 0110
1000 0010
+
Se produce un sobre flujo, ya que se produce acarreo en la posición del bit 6 más
no en la del bit 7.
1100 0110
1111 0100
11011 1010
+
No existirá error de sobre flujo, cuando no se generen acarreos en ningún de los dos
bits más significativos, o cuando se generen en ambos
Descargar