lunes, junio 23, 2008

La IP binaria que los parió

No, no es para insultar a nadie. Aunque el aprender esto fué como un insulto a mis pobres y cansadas neuronas, ya que me las sacudieron y me hicieron sentir como un "apoliyado mental".

El tema viene porque se me ocurrió comprar y leer un Libro de Redes GNU/Linux.

Llegué a la parte de que las IP tienen su representación en números binarios, y me dije, que carajo es esto.

Por lo que se me ocurrió preguntarle a mi amigo HMG79, que se vé que andaba "al pedo", y con ganas y paciencia como para explicármelo.

Resulta que la cosa sería así:

Cada IP se divide en 4 grupos de 3 números,
que van de 0 a 255, (ej. 255.255.255.255).


Entonces, todos los número del 0 al 255 se pueden formar sumando estos números y reprensentando cada "sumando" con el "1" que ocupa en su lugar correspondiente, según la siguiente tabla:

10000000 = 128
01000000 = 64
00100000 = 32
00010000 = 16
00001000 = 8
00000100 = 4
00000010 = 2
00000001 = 1
00000000 = 0

¿No se entiende?
Ahhhh, no soy el único, veamos un ejemplo:


192
= 128 + 64, lo que traducido a binario sería 11000000
el primer "1" representa 128 y el segundo "1" representa 64

Ahhhh ¿no se entiende tampoco?
¿Vieron que feo que es, que te sacudan las neuronas?

Veamos otro numero, 235.
128 + 64 + 32 + 8 + 2 + 1 = 235
Lo que traducido a binario sería:
11101011

Parece difícil, pero en realidad lo es ;), por lo que la mejor manera que se me ocurre para explicarlo sería, si el "sumando" está, va un "1", y si no está, va un "0", siempre en los lugares correspondientes (ver tabla).
Recuerden que los sumandos eran:
128, 64, 32, 16, 8, 4, 2, 1, 0
Por lo tanto, en nuestro binario del ejemplo anterior, el
11101011, si empezamos desde la izquierda hacia la derecha:
1 representa al 128
1 represente al 64
1 reprenseta al 32
0 representa al 16 que no lo usamos para nuestra suma
1 representa al 8
0 representa al 4 que no lo usamos para nuestra suma
1 representa al 2
1 representa al 1

¿Se va entendiendo?
A la pucha, a mi me costó mucho más ;), se nota que son más inteligentes y más jóvenes que yo, pero ustedes no hicieron un "cuentuto" como este ;)

Ahora un número bajito, por ejemplo el 53.
32 + 16 + 4 + 1 = 53
Lo que traducido a binario sería:
00110101

0 representa al 128 que no lo usamos para nuestra suma
0 represente al 64 que no lo usamos para nuestra suma
1 reprenseta al 32
1 representa al 16
0 representa al
8 que no lo usamos para nuestra suma
1 representa al 4
0 representa al
2 que no lo usamos para nuestra suma
1 representa al 1

¿Se divierten?
No creo que tanto como se divertía HMG79 cuando me explicaba esto ;)

Bueno, nada más, los dejo desde mi 127.0.0.1, que traducido a binario sería:
01111111.00000000.00000000.00000001 proque:

01111111 = 127
00000000 = 0
00000000 = 0
00000001 = 1

¿O no?

Que los inventores de los octetos y los binarios se vayan todos a la IP que los parió ;)

Gracias Héctor Galli por tu paciencia, generosidad y por la clase que me diste.

Hoy aprendí otra cosa nueva ;)

Un saludo y nos leemos por ahí.
Daniel Bertúa.