Copy Link
Add to Bookmark
Report
4x07: Conociendo a nuestro amigo (o enemigo)

-[ 4x07.txt ]----------------------------------------------------------------
-[ Conociendo a nuestro amigo (o enemigo) ]-------------[ Mr. kl0nk Manson ]-
--------------------------------------------------------[ kl0nk@otv.org.ve ]-
Indice
------
* Introduccion.
* Contenido:
0. Conocimiento previo.
a.- Transformaciones
a1. Binario a Decimal.
a2. Decimal a Binario.
a3. Octal a Binario.
a4. Binario a Octal.
a5. Octal a Decimal.
a6. Decimal a Octal.
a7. Hexadecimal a Binario.
a8. Binario a Hexadecimal.
a9. Hexadecimal a Decimal.
a10. Decimal a Hexadecimal.
a11. Hexadecimal a Octal.
a12. Octal a Hexadecimal.
b.- Operaciones
Sumas:
b1.1.- Binario
b1.2.- Octal
b1.3.- Hexadecimal
Restas
b2.1.- Binario
b2.2.- Octal
b2.3.- Hexadecimal
Multiplicacion
b3.1.- Binario
b3.2.- Octal
b3.3.- Hexadecimal
Division
b4.1.- Binario
b4.2.- Octal
b4.3.- Hexadecimal
* Conclusion.
Introduccion
------------
Este paper tiene como fin explicar como hacer transformaciones en los
sistemas Binarios, Octal, Decimal y Hexadecimal, Sumas, restas,
Multipliaciones y Divisiones, ademas del sistema BCD. Este paper
tambien va dedicado a Gustavito, Gracias a su empuje pude escribir este
paper.
Saludos a los panas que estubieron comiendo HEX y otros quimicos conmigo:
LiteSYS, vbxsys, inouttime, Manuel B, Talivan.
0. Conocimiento previo.
--------------------
Para poder entender este articulo debemos saber lo siguiente:
a.- Binario: Se traduce como 2 bits, los cuales son: 0 y 1
b.- Octal: Se traduce como 8 bits que van de 0-7
c.- Decimal: Se traduce como 10 Bits que van de un rango de 0-9, donde
los numero mayores a 9 son conbinaciones de el mismo sistema.
d.- HexaDecimal: Se traduce como 16 bits los cuales tan dentro del
rango de 0-15, ademas de que:
10 es igual a la letra A
11 es igual a la letra B
12 es igual a la letra C
13 es igual a la letra D
14 es igual a la letra E
15 es igual a la letra F
Sabiendo esto, empecemos con las transformaciones ...
1. Transformacion de Binario a Decimal
-----------------------------------
Esta se hacer elevando de atras hacia adelante la cadena binaria, para ello
se utilizara la base 2 y se le sumara al siguiente bit, ejemplo:
100101100 a Decimal
-------------------
a. Se separan los Bits
1 0 0 1 0 1 1 0 0
b. Luego se elevan de atras hacia adelante, tomando en cuenta que la base
es 2 y que empieza desde el cero (0)
1x2^8 0x2^7 0x2^6 1x2^5 0x2^4 1x2^3 1x2^2 0x2^1 0x2^0
c. Ahora se hace una suma sucesiva entre ellos:
1x2^8 + 0x2^7 + 0x2^6 + 1x2^5 + 0x2^4 + 1x2^3 + 1x2^2 + 0x2^1 + 0x2^0
d. El resultado deberia ser:
256 + 32 + 8 + 4 = 300
Y con esto hemos llevado el el numero binario 100101100 al sistema decimal.
2. Transformacion de Decimal a Binario
-----------------------------------
Para esta transformacion simplemente se tomara el numero decimal y se
dividira entre 2 tantas veces hasta que su residuo sea 0. Ejemplo:
300 en Decimal a Binario
------------------------
300 / 2 = 150 (0)
150 / 2 = 75 (0)
75 / 2 = 37.5 (Tomamos el 37 lo multiplicamos por 2 y se lo restamos
al dividendo y el resto siempre debe dar 1) (1)
37 / 2 = 18.5 (Aplicamos lo mismo de lo de arriba y el resto siempre
debe dar 1) (1)
18 / 2 = 9 (0)
9 / 2 = 4.5 (Ya saben lo que deben de hacer) (1)
4 / 2 = 2 (0)
2 / 2 = (0) (1)
Las divisiones nos han arrojado los siguientes bits:
300 / 2 = (0) <-|
150 / 2 = (0) |
75 / 2 = (1) |
37 / 2 = (1) |
18 / 2 = (0) |
9 / 2 = (1) |
4 / 2 = (0) |
2 / 2 = (0) (1) -|
Ahora para ordenarlo lo tomamos de abajo hacia arriba:
1 0 0 1 0 1 1 0 0
Y ya lo hemos llevado el numero 300 que esta en decimal a binario.
3. Transformacion de Octal a Binario
---------------------------------
5432
a.- Lo separamos:
5 4 3 2
b.- Ahora lo transformamos en binario (2^3), donde tomamos 3 bits
4 2 1
--------
5 = 1 0 1
4 = 1 0 0
3 = 0 1 1
2 = 0 1 0
c.- Ahora cambiamos los numeros decimal por el resultado en binario:
101 100 011 010
y Con esto hemos conseguido obtener la transformacion de Octal a Binario.
4. Transformacion de Binario a Octal
---------------------------------
Simplemente agarramos el conjunto de bits y luego lo agrupamos de 3 en 3
de derecha a izquerda, si nos llegan a faltar bits el final de la cadena
(cuando estemos agrupando) pues lo rellenamos con tanto ceros nos haga
falta, ejemplo:
101100110010 en Binario a Octal
-------------------------------
a.- Lo separamos en grupos de 3 de izquierda a derecha:
101 100 110 010
b.- Sacamos el valor en decimal de cada uno de los grupos:
101 = 1x2^2 + 0x2^1 + 1x2^0 = 4 + 0 + 1 = 5
100 = 1x2^2 + 0x2^1 + 0x2^0 = 4 + 0 + 0 = 4
110 = 1x2^2 + 1x2^1 + 0x2^0 = 4 + 2 + 0 = 6
010 = 0x2^2 + 1x2^1 + 0x2^0 = 0 + 4 + 0 = 2
Ahora tomamos los valores de Arriba hacia Abajo:
5 4 6 2
Con esto hemos llevado el valor 101100110010 a octal.
5. Transformacion de Octal a Decimal
---------------------------------
Simplemente tomamos el numero en octal, lo separamos y lo multiplicamos
por base 8 (2^3 = 8), ejemplo:
1642 en octal a Decimal
-----------------------
a.- Lo separamos:
1 6 4 2
b.- Multiplicamos por 8 (la base) a cada uno de los numeros
1x8 6x8 4x8 2x8
c.- Ahora lo elevamos a la 0,1,2 .. N de derecha a izquierda
1x8^3 6x8^2 4x8^1 2x8^0
d.- Luego hacemos una suma sucesiva
1x8^3 + 6x8^2 + 4x8^1 + 2x8^0 = 512 + 384 + 32 + 2 = 930
Luego 930 es nuestro valor en decimal.
6. Transformacion de Decimal a Octal
---------------------------------
Para ello tomamos el numero en decimal y lo dividimos entre 8 tantas
veces sea necesario hasta que nuestro residuo nos de 0. Ejemplo:
930 en Decimal a Octal
----------------------
a.- Hacemos una division comun y corriente
930 / 8
- 8 116
---
- 13
8
---
- 50
48
---
(2)
El 2 sera uno de nuestros resultados, ahora dividimos el cociente entre 8
116 / 8
- 8 14
---
36
- 32
---
(4)
El 4 sera otro valor de nuestro resultado, de nuevo volvemos a dividir el
cociente entre 8
14 / 8
- 8 1
--
(6)
Cuando el cociente nos da 1 como resultado lo tomamos como valor, si es
cero no hay necesidad de tomarlo. Ahora agarramos de el ultimo valor
al primer valor:
1 6 4 2
Y 1642 es el equivalente en octal al 930 en decimal.
7. Transformacion de Hexadecimal a Binario
---------------------------------------
La forma mas facil de hacerlo es atravez de la tabla binaria que es la
siguiente:
8 4 2 0
-------------------
| 0 | 0 0 0 0 |
| 1 | 0 0 0 1 |
| 2 | 0 0 1 0 |
| 3 | 0 0 1 1 |
| 4 | 0 1 0 0 |
| 5 | 0 1 0 1 |
| 6 | 0 1 1 0 |
| 7 | 0 1 1 1 |
| 8 | 1 0 0 0 |
| 9 | 1 0 0 1 |
| A | 1 0 1 0 |
| B | 1 0 1 1 |
| C | 1 1 0 0 |
| D | 1 1 0 1 |
| E | 1 1 1 0 |
| F | 1 1 1 1 |
-------------------
Ejemplo: Transformar 29A en Binario
a.- Descomponemos el 29A
2 9 A
b.- Buscamos en la Tabla el Valor de 2, 9 y A
2 = 0010
9 = 1001
A = 1010
c.- Substituimos el valor HEX por el Binario
001010011010
Y hemos obtenido la transformacion
8. Transformacion de Binario a Hexadecimal
---------------------------------------
Es muy parecido a lo de arriba, ejemplo:
001010011010 a HEX
a.- Separamos en grupos de 4 de Derecha a Izquierda, si nos hace falta
rellenamos con ceros.
0010 1001 1010
b.- Buscamos el respectivo valor en la tabla binaria o por la formula de
deduccion (trabajando con base 16):
0010 = 2
1001 = 9
1010 = A
Donde nuestra transformacion da como resultado 29A
9. Transformacion de Hexadecimal a Decimal
Esta transformacion consiste en separar los digitos, multiplicarlo por 16
(2^4 = 16) y elevarlo a la 0,1,2..N de Izquierda a Derecha ademas de
sumarlos sucesivamente, ejemplo:
29A a Decimal
-------------
a.- Separamos los digitos, como sabemos A = 10, entonces:
2 9 A = 2 9 10
b.- Ahora multiplicamos cada uno de los digitos por 16
2x16 9x16 10x16
c.- Elevamos cada una de las bases a la 0,1,2..N de Izquierda a derecha y
luego sumamos sucesivamente
2x16^2 + 9x16^1 + 10x16^0 = 512 + 144 + 10 = 666
Luego 666 en decimal es equivalente a 29A en Hexadecimal.
10. Transformacion de Decimal a Hexadecimal
---------------------------------------
Esta es parecida a la transformacion de Decimal a Octal, lo unico que
cambia es que en vez de dividir entre 8 lo vamos hacer entre 16.
Ejemplo:
666 en Decimal a HEX
--------------------
a.- Hacemos una division comun y corriente pero nuestro dividendo sera
16
666 / 16
- 64 41
---
26
- 16
---
(10)
El (10) = A es uno de nuestros resultados, ahora dividimos el cociente
entre 16
41 / 16
- 32 2
--
(9)
El 9 es otro de los valores que estamos buscando, como 2 no es divisible
entre 16 entonces lo tomamos como valor final y nos quedaria:
10 9 2 , Intercambiando posiciones:
2 9 10 , donde 10 = A
29A
29A es equivalente a 666 en decimal.
11. Transformacion de Hexadecimal a Octal
-------------------------------------
Para esta transformacion hay que tener en cuenta que una es base 16 y la
otra es base 8, es decir llevarlo de 2^4 a 2^3, para ello primero hay que
llevarlo a binario el valor en HEX, luego agrupar los bits de 3 en 3 de
derecha a izquerda, claro esta que si te faltan bits para agrupar al final
de la cadena debes rellenarla con ceros. Ejemplo:
AF754.379A a Octal
------------------
a.- Llevamos AF754.379A a binario:
1010 1111 0111 0101 0100 . 0011 0111 1001 1010
b.- Agrupamos de 3 en 3 de Derecha a Izquierda
10 101 111 011 101 010 100 . 0 011 011 110 011 010
Como podemos ver, nos ha quedado 10 y 0 sin estar en grupos, para ello
simplemente le colocamos a su izquerda tanto ceros sean necesarios para
convertirlos en un grupo de 3 bits. al 10 le colocamos un cero y quedaria
como 010 y al 0 le colocamos 2 ceros a la izquerda y quedaria 000
010 101 111 011 101 010 100 . 000 011 011 110 011 010
c.- Ahora buscamos en la tabla binaria el respectivo valor decimal del
binario
4 2 0
---------------
| 0 | 0 0 0 |
| 1 | 0 0 1 |
| 2 | 0 1 0 |
| 3 | 0 1 1 |
| 4 | 1 0 0 |
| 5 | 1 0 1 |
| 6 | 1 1 0 |
| 7 | 1 1 1 |
---------------
010 = 2
101 = 5
111 = 7
011 = 3
101 = 5
010 = 2
100 = 4
. = ,
000 = 0
011 = 3
011 = 3
110 = 6
011 = 3
010 = 2
El Valor obtenido es 2573524,033632 en Octal.
12. Transformacion de Octal a Hexadecimal
-------------------------------------
Simplemente agarramos el numero en Octal, lo transformamos en binario, este
nos dara grupos de 3 pero alos agrupamos todos los bits y hacemos grupos de
4 bits, luego buscamos en la tabla su respectivo valor:
Ejemplo:
2573524,033632 a HEX
--------------------
a.- Lo transformamos a binario:
010 101 111 011 101 010 100 . 000 011 011 110 011 010
b.- Ahora los agrupamos en grupos de 4 de Derecha a Izquerda
0 1010 1111 0111 0101 0100 . 00 0011 0111 1001 1010
c.- Relenamos con ceros los que nos quedaron solitos:
0000 1010 1111 0111 0101 0100 . 0000 0011 0111 1001 1010
d.- Buscamos en la tabla binaria los respectivos valores:
0000 = 0
1010 = 10 = A
1111 = 15 = F
0111 = 7
0101 = 5
0100 = 4
, = .
0000 = 0
0011 = 3
0111 = 7
1001 = 9
1010 = 10 = A
Nos quedaria:
0AF754 . 0379A
Como el cero a la izquierda no vale pues lo quitamos, entonces nos quedaria:
AF754.379A y este es el valor en HEX.
To Be continued ...
<EOF>