prg1 clase3

16
18/07/2013 1 CONVERSIÓN ENTRE BASES Objetivos: Conocer el proceso de conversión entre diferentes bases de numeración. Realizar conversiones de binario a decimal, octal y hexadecimal. Realizar conversiones de octal a binario y de hexadecimal a binario. Realizar conversiones de base “r” a base “s”. Universidad Católica de El Salvador Facultad de Ingeniería y Arquitectura Programación I, Sección A Docente: Ma. Ing. Giovanni Acosta Sistema de numeración Binario Estructura de Pesos de los Números Binarios: 1. Un número binario es un número con peso. El bit más a la derecha es el bit menos significativo (LSB, Least Significant Bit) en un número entero binario y tiene un peso de 2 0 = 1. 2. Los pesos de los respectivos bits crecen de derecha a izquierda según las potencias de dos. El bit más a la izquierda es el bit más significativo (MSB, Most Significant Bit), y su peso depende del tamaño del número binario. 3. Los números con parte fraccionaria también se pueden representar en binario, colocando bits a la derecha de la coma binaria.

Upload: leo-avila

Post on 10-Jul-2015

308 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prg1 clase3

18/07/2013

1

CONVERSIÓN ENTRE BASES

Objetivos:

• Conocer el proceso de conversión entre diferentes bases de numeración.

• Realizar conversiones de binario a decimal, octal y hexadecimal.

• Realizar conversiones de octal a binario y de hexadecimal a binario.

• Realizar conversiones de base “r” a base “s”.

Universidad Católica de El Salvador

Facultad de Ingeniería y Arquitectura

Programación I, Sección A

Docente: Ma. Ing. Giovanni Acosta

Sistema de numeración Binario

• Estructura de Pesos de los Números Binarios:

1. Un número binario es un número con peso. El bit más a la derecha es el bit menos

significativo (LSB, Least Significant Bit) en un número entero binario y tiene un peso de

20 = 1.

2. Los pesos de los respectivos bits crecen de derecha a izquierda según las potencias de

dos. El bit más a la izquierda es el bit más significativo (MSB, Most Significant Bit), y su

peso depende del tamaño del número binario.

3. Los números con parte fraccionaria también se pueden representar en binario, colocando

bits a la derecha de la coma binaria.

Page 2: Prg1 clase3

18/07/2013

2

Conversión de decimal a binarioMétodo 1

1. Método de división sucesiva por 2:

• Los restos generados en cada división forman el número binario. El primer resto es el bit

binario menos significativo (LSB) y el último resto es el bit más significativo (MSB) del

número binario.

249 2

124 2

62 2

31 2

15 2

27

3 2

1 2

0

1

0

0

1

1

1

1

1

MSB

LSB

Conversión de decimales fraccionarios a binario:

• Los números decimales enteros se pueden convertir a números binarios mediante la división

sucesiva por 2.

• Los números decimales fraccionarios pueden convertirse en números binarios mediante la

multiplicación sucesiva por 2. Se multiplica cada parte fraccional resultante del producto por

2, hasta que el producto fraccionario sea cero o hasta que se alcance el número deseado de

posiciones decimales.

Page 3: Prg1 clase3

18/07/2013

3

Ejemplo:

• Convertir 6.83 a binario

6 2

3 2

1 2

0

0

1

1

MSB

LSB

Parte entera: 110

Parte entera y fraccionaria: 110,110101000111

0,83 x 2 = 1,66 => 1

0,66 x 2 = 1,32 => 1

0,32 x 2 = 0,64 => 0

0,64 x 2 = 1,28 => 1

0,28 x 2 = 0,56 => 0

0,56 x 2 = 1,12 => 1

0,12 x 2 = 0,24 => 0

0,24 x 2 = 0,48 => 0

0,48 x 2 = 0,96 => 0

0,96 x 2 = 1,92 => 1

0,92 x 2 = 1,84 => 1

0,84 x 2 = 1,68 => 1

En orden: 110101000111

LSB

MSB

Conversión de decimal a binarioMétodo 2

2. Método de suma de pesos:

• Otra forma de calcular el número binario equivalente a un número decimal dado es

determinar el conjunto de pesos binarios, cuya suma es igual al número decimal.

• Procedimiento: se comienza restando los valores de los bits (potencias de 2) más

cercanos al valor decimal hasta llegar a cero, luego se completa con ceros los valores

faltantes entre los bits.

Page 4: Prg1 clase3

18/07/2013

4

Ejemplo:

• Convertir 150 decimal a binario.

• La potencia de 2 más cercana a 150 es 128 (2 a la 7ª , Octavo Bit) 150 – 128 = 22

• La potencia de 2 más cercana a 22 es 16 (2 a la 4ª , Quinto Bit) 22 – 16 = 6

• La potencia de 2 más cercana a 6 es 4 (2 ala 2ª , Tercer Bit) 6 – 4 = 2

• La potencia de 2 más cercana a 2 es 2 (2 ala 1ª , Segundo Bit) 2 – 2 = 0

150 = 10010110

Ejemplo:

MSB LSB

Potencia de 2 2 a la 7ª 2 a la 6ª 2 a la 5ª 2 a la 4ª 2 ala 3ª 2 a la 2ª 2 a la 1ª 2 a la 0

Valor del Bit 128 64 32 16 8 4 2 1

Binario (conocido) 1 1 1 1

Binario (completar) 0 0 0 0

Conversión 1 0 0 1 0 1 1 0

Convertir 150 de decimal a binario:

150 = 10010110

Page 5: Prg1 clase3

18/07/2013

5

Ejercicios:

• Convertir de decimal a binario:

1. 276

2. 189

Conversión de binario a decimal

• El valor decimal de cualquier número binario se puede determinar sumando los pesos de todos

los bits que son 1, y descartando los pesos de todos los bits que son 0.

Page 6: Prg1 clase3

18/07/2013

6

Ejemplo:

• Convertir el número entero binario 1101101 a decimal.

• Se determina el peso de cada bit que está a 1, y luego se obtiene la suma de los pesos

para obtener el número decimal:

Ejemplo:

• Convertir el número binario fraccionario 0,1011 en decimal.

• En primer lugar se determina el peso de cada bit que está a 1, y luego se suman los pesos

para obtener la fracción decimal:

Page 7: Prg1 clase3

18/07/2013

7

Conversión de octal a decimal

• La evaluación de un número octal en términos de su equivalente decimal se consigue

multiplicando cada dígito por su peso y sumando los productos.

Ejemplo:

Page 8: Prg1 clase3

18/07/2013

8

Conversión de hexadecimal a decimal

• Método 1: para encontrar el equivalente decimal de un número hexadecimal,

primero, convertir el número hexadecimal a binario, y después, el binario a

decimal.

Ejemplo: método 1

• Convertir a decimal el número hexadecimal: A8516

• Primero, hay que convertir a binario el número hexadecimal, y después a decimal:

Page 9: Prg1 clase3

18/07/2013

9

Conversión de hexadecimal a decimal

• Método 2: para convertir un número hexadecimal a su equivalente decimal,

multiplicar el valor decimal de cada dígito hexadecimal por su peso y luego

realizar la peso, suma de estos productos.

Ejemplo: método 2

• Convertir a decimal: E516

Page 10: Prg1 clase3

18/07/2013

10

Conversión de octal a binario

• Puesto que cada dígito octal se puede representar mediante un número binario de 3 dígitos,

para convertir un número octal en un número binario, simplemente se remplaza cada dígito

por el correspondiente grupo de tres bits.

• Cada dígito octal se representa mediante tres bits, como se muestra en la siguiente tabla:

Ejemplos:

• Convertir a binarios los siguientes números octales:

Page 11: Prg1 clase3

18/07/2013

11

Conversión de binario a octal

• La conversión de un número binario a un número octal es el inverso de la conversión de octal a

binario.

• El procedimiento es el siguiente: se comienza por el grupo de tres bits más a la derecha y,

moviéndose de derecha a izquierda, se convierte cada grupo de 3 bits en el dígito octal

equivalente.

• Si para el grupo más a la izquierda no hay disponibles tres bits, se añaden uno o dos ceros para

completar el grupo. Estos ceros no afectan al valor del número binario.

Ejemplo:

• Convertir a octal los siguientes números binarios:

Page 12: Prg1 clase3

18/07/2013

12

Conversión de binario a hexadecimal

• El procedimiento de conversión de un número binario a hexadecimal consiste en los siguientes

pasos:

a) Se parte el número binario en grupos de 4 bits, comenzando por el bit más a la

derecha; y

b) Se remplaza cada grupo de 4 bits por su símbolo hexadecimal equivalente.

Ejemplo:

• Convertir a hexadecimal los siguientes números:

Page 13: Prg1 clase3

18/07/2013

13

Conversión de hexadecimal a binario

• Para convertir un número hexadecimal en un número binario se realiza el proceso inverso,

remplazando cada símbolo hexadecimal, por el grupo de cuatro bits adecuados.

Ejemplo:

• Determinar los números binarios que correspondan a los siguientes números hexadecimales:

Page 14: Prg1 clase3

18/07/2013

14

Conversión de una base “r” a base “s”

• El problema general de convertir un número de su representación en base r a la

correspondiente en base s se puede resolver en un sólo paso si se maneja aritmética de base r

o de base q, sin embargo, si se quiere usar en el proceso solamente aritmética de base 10 se

debe plantear en dos etapas

Caso particular. conversión entre bases rk y r

• Cuando una de las bases involucradas en la conversión es una potencia entera de la otra la

conversión se vuelve muy sencilla, ya que se puede realizar en un sólo paso expresando cada

dígito del número en base rk usando k dígitos de base r. Además, este procedimiento no

requiere aritmética de ningún tipo.

Page 15: Prg1 clase3

18/07/2013

15

Ejemplo:

• Convertir N=(10111011110)2 a base 8 y a base 16

• para base 8: Como 8 = 23, bastará con representar cada 3 dígitos del número binario en octal

como se muestra a continuación.

• para base 16: como 16=24 , en forma similar al caso anterior

Ejercicios:

1. Convertir de binario a decimal

a) 110012

b) 10110110112

2. Convertir de decimal a binario

a) 86910

b) 842610

3. Convertir de binario a octal

a) 1110101012

b) 11011,012

4. Convertir de octal a binario

a) 20668

b) 142768

5. Convertir de binario a hexadecimal

a) 1100010002

b) 100010,1102

6. Convertir de hexadecimal a binario

a) 86BF16

b) 2D5E16

7. Convertir de octal a decimal

a) 1068

b) 7428

8. Convertir de decimal a octal:

a) 23610

b) 5274610

Page 16: Prg1 clase3

18/07/2013

16

Soluciones:

1. De binario a decimal

a) 110012 Solución: 2510

b) 10110110112 Solución: 73110

2. De decimal a binario

a) 86910 Solución: 11011001012

b) 842610 Solución: 100000111010102

3. De binario a octal

a) 1110101012 Solución: 7258

b) 11011,012 Solución: 33,28

4. De octal a binario

a) 20668 Solución: 0100001101102

b) 142768 Solución: 0011000101111102

5. De binario a hexadecimal

a) 1100010002 Solución: 18816

b) 100010,1102 Solución: 22,C16

6. De hexadecimal a binario

a) 86BF16 Solución: 10000110101111112

b) 2D5E16 Solución: 0101101010111102

7. De octal a decimal

a) 1068 Solución: 7010

b) 7428 Solución: 48210

8. De decimal a octal:

a) 23610 Solución: 3548

b) 5274610 Solución: 1470128