La conversión entre números de distintas bases a un número decimal es, como ya vimos, bastante sencilla. Sólo debemos usar la fórmula que ya se describió. Pero ¿qué pasa si lo que queremos es convertir un número decimal a binario? ¿o a hexadecimal? ¿o a octal? Para realizar estas conversiones primero que nada, si el número tiene parte decimal, separamos la parte entera de la fracción decimal. La mejor forma de mostrar la conversión es a través de ejemplos. Veamos algunos:
Convertir a binario el número decimal 41: En el caso de querer convertir a números binarios lo que debemos hacer es realizar sucesivas divisiones del número a convertir entre dos hasta que lleguemos a un cociente de cero. Los restos de las divisiones representarán los dígitos desde el menos significativo (que será el primer resto) hasta el más significativo que será el resto de la última división cuando lleguemos al cociente cero. Entonces si el número es 41, al realizar la división entre dos obtendremos un cociente de 20 y un resto de 1. Es precisamente el resto quien indicará cuál es el valor del bit y en este caso este es el bit menos significativo. Luego haremos la operación nuevamente con el nuevo cociente que es el 20 y así sucesivamente hasta llegar al momento en que el cociente sea 0. Entonces, desde el principio:
- 41 / 2 = 20 con resto 1 => El coeficiente el menos significativo será 1, digamos a0=1.
- 20/2 = 10 con resto 0 => El coeficiente 1 será 0 => a1=0.
- 10/2 = 5 con resto 0 => a2=0.
- 5/2 = 2 con resto 1 => a3=1.
- 2/2 = 1 con resto 0 => a4=0.
- 1/2 = 0 con resto 1 => a5=1.
Por lo tanto:
(41)10 = (a5a4a3a2a1a0) = (101001)2
¿y si quisiéramos mostrar el número en octal y/ó hexadecimal, partiendo de que ya tenemos el número binario?, entonces sería:
(101001)2 = (51)8 = (29)16
Veamos otro ejemplo. Convertir el número decimal 161 a binario. Haríamos:
161 | 80 | 40 | 20 | 10 | 5 | 2 | 1 | 0 |
1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
sabiendo que el primer bit es el menos significativo tendríamos:
(161)10 = (10100001)2
partiendo del binario, en octal y hexadecimal sería:
(10100001)2 = (A1)16 = (241)8
¿quieren revisar? OK:
(A1)16 = 10 x 161 + 1 x 160 = 160 + 1 = (161)10
(241)8 = 2 x 82 + 4 x 81 + 1 x 80 = 128 + 32 + 1 = (161)10
Ok, todo chévere. Pero ¿qué pasa si lo que quiero es convertir el número decimal directamente a octal o a hexadecimal? (quiero decir si NO tenemos el número binario). Por supuesto, ustedes podrían convertirlo a binario y luego a octal o hexadecimal. Soy de la política de que no importa cómo se llegue al resultado mientras éste sea el correcto a menos claro está de que se les digaexplícitamente que lo hagan de alguna forma en particular. En todo caso, la forma más rápida de hacerlo sería aplicando el método análogo a la conversión a binario sólo que cambiando el divisor a la base correspondiente. Si en binario es 2, en octal es 8, en hexadecimal es 16 en base 5 sería 5, etc. Procedamos con el mismo ejemplo anterior, con el número 161. Convirtámoslo a octal. Sería:
- 161
- 20 con resto 1
- 2 con resto 4
- 0 con resto 2
por lo tanto:
(161)10 = (241)8
ya que el primer resto es el dígito menos significativo. Y ¿qué tal a hexadecimal? Sería:
- 161
- 10 con resto 1
- 0 con resto 10 que en hexadecimal es representado por A
entonces:
(161)10 = (A1)16
Ok. Si la base destino es 5, por ejemplo, llevarlo a binario no les serviría de nada. En este caso tendríamos que proceder obligatóriamente con el método explicado, en este caso siendo el divisor el número 5. Mismo ejemplo:
- 161RESTO321621101
Por lo tanto:
(161)10 = (1121)5
Revisemos:
(1121)5 = 1 x 53 + 1 x 52 + 2 x 51 + 1 x 50 = 125 + 25 + 10 + 1 = (161)10
CORRECTO!!! Veamos ahora el caso de que el número sea con decimales. Como ya se comentó, en estos casos es más conveniente separar la parte entera de la fracción decimal. La parte entera ya sabemos cómo resolverla. La fracción decimal se hace por un procedimiento similar pero la operación involucrada es la multiplicación y quien representará el dígito a colocar será la parte entera siendo el primer entero quien será la cifra más significativa. Por ejemplo si queremos convertir el número decimal 0,8125 a binario hacemos:
- 0,8125 x 2 = 1 + 0,625
- 0,625 x 2 = 1 + 0,25
- 0,25 x 2 = 0 + 0,50
- 0,50 x 2 = 1 + 0
así que
(0,812)10 = (0,1101)2
Revisemos:
(0,1101)2 = 1 x 2-1 + 1 x 2-2 + 0 x 2-3 + 1 x 2-4 = 0,5 + 0,25 + 0 + 0,0625 = (0,8125)10
Excelente!!! Veamos un último ejemplo. Convertir el número decimal 48,407407407407 (407 periódico) al correspondiente en base 3. Para la parte entera:
- 48
- 16 con resto 0
- 5 con resto 1
- 1 con resto 2
- 0 con resto 1
y para la fracción decimal:
- 0,407407407407 x 3 = 1 + 0,2222222 periódico
- 0,222222222222 x 3 = 0 + 0,6666666 periódico
- 0,666666666666 x 3 = 2 + 0
Por lo tanto
(48,407407407407...)10 = (1210,102)3
Revísenlo.
NOTA: Dada la confusión presentada por los números en distintas bases y viendo el resultado en algunos alumnos que dio dar ejemplos de series en distintas bases, aquí les anexo una tabla con números en decimal y su correspondiente en otras bases. Observen como varían los símbolos usados en las distintas bases en incrementos de uno.Decimal Hexadecimal Octal Base 3 Base 7 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 10 3 4 4 4 11 4 5 5 5 12 5 6 6 6 20 6 7 7 7 21 10 8 8 10 22 11 9 9 11 100 12 10 A 12 101 13 11 B 13 102 14 12 C 14 110 15 13 D 15 111 16 14 E 16 112 20 15 F 17 120 21 16 10 20 121 22 17 11 21 122 23 18 12 22 200 24 30 1E 36 1010 42 31 1F 37 1011 43 32 20 40 1012 44 64 40 100 2101 121 69 45 105 2120 126 70 46 106 2121 130 71 47 107 2122 131
Si por ejemplo tienen el número (12)3 y se le pide que le sumen 2, el resultado que van a obtener es el número en base 3 que está 2 posiciones adelante del (12)3 , en este caso el (21)3. Espero que esta tabla les sirva para comprender mejor los números en bases distintas. (4 + 6)7 = (13)7. Teniendo ya esto en cuenta, veamos como se realizan operaciones aritméticas en distintas bases.
No hay comentarios:
Publicar un comentario