lunes, 3 de septiembre de 2012

Pasar un número de binario a decimal (para informáticos)


En este post os voy a dar una forma rápida de pasar de binario a decimal y viceversa, sólo del 0 al 255.

Para ello vamos ha usar el peso… Bueno lo primero que debemos saber es lo que es un bit y byte u octeto. Para los que utilizáis el ordenador y no tenéis ni idea de lo que hay de tras, en algunos casos la pared, ¡toma chiste malo! Como iba diciendo el bit es la unidad mínima de información. La unión de 8 de estos bits forman lo que llamamos byte u octeto, ¡se le han calentado mucho la cabeza con el nombrecito! Una vez dicho lo anterior, pasamos a lo importante. Pues ándale ya ¡güevón! Para realizar la transformación utilizaremos el peso de cada bit dentro del octeto:

1º bit     1

2º bit     2

3º bit     4

4º bit     8                             128         64           32           16           8             4             2             1

5º bit     16

6º bit     32

7º bit     64

8º bit     128

 

Por ejemplo si nos dan el número binario   0 1  0  0  1  0  1  0  al posicionar cada cifra del número binario bajo su peso nos quedará:

                               128         64           32           16           8             4             2             1

                                   0           1             0             0           1             0             1             0

Al sumar los pesos de los bit que están sobre un “1” (64 + 8 + 2) obtendremos el número decimal  74.

A que esta explicación es más sencilla que las que nos daban en clase de mates.

Ahora intentaremos hacer lo contrario. Tenemos que pasar un número decimal, insisto de 0 a 255, como el 187 a binario. Pues ¡vamos a ello! Lo que haremos primero será ir comparando con los pesos de cada bit. Lo vamos a ir haciendo paso a paso. Primero comparamos el número decimal que tenemos con el bit de mayor peso (128). ¿187 es mayor o igual que 128? Sí, pues ponemos en el bit 8º un “1”.

                               128         64           32           16           8             4             2             1

                                   1

Luego restamos 128 a 187 y nos dará el número 59. Este número con el siguiente bit de mayor peso (64). ¿59 es mayor o igual que 64? No, entonces ponemos en este bit (bit 7º) un “0”.

                               128         64           32           16           8             4             2             1

                                   1           0

Seguimos comparando con el siguiente bit de mayor peso (32). ¿Es 59 mayor o igual que 32? Sí, entonces pondremos un “1” en el bit 6º.

                               128         64           32           16           8             4             2             1

                                   1           0             1

Ahora restaremos 32 menos 59 que nos dará el número 27. Seguimos las comparaciones. Nos toca la comparación con el 5º bit (16). ¿25 es mayor o igual que 16? Sí, entonces ponemos un “1” la posición de este bit.

                               128         64           32           16           8             4             2             1

                                   1           0             1             1

Restamos 16 a 27 y nos dará el siguiente número para comparar (11). Vamos ahora con el bit 4º ¿11 es mayor o igual que 8? Sí, pues a colocar un “1” en el siguiente lugar.

                               128         64           32           16           8             4             2             1

                                   1           0             1             1           1

Y otra vez a restar, 8 menos 11 y nos da 3. Comparemos ahora con el bit 3º (4). ¿3 es mayor o igual que 4? No, pues ponemos en esta posición un “0”.

                               128         64           32           16           8             4             2             1

                                   1           0             1             1           1             0

Bueno esto ya es lo último, el número 3 lo descomponemos en 2 y 1 que son los pesos de los bit 2º y1º con lo cual en la posición de estos dos bit pondremos un  “1”.

                               128         64           32           16           8             4             2             1

                                   1           0             1             1           1             0             1             1

Ya tenemos el número binario que nos pedían “1 0 1 1 1 0 1 1”.

¡Ojo! Si en las comparaciones nos sale que un numero es igual al peso del bit en esa posición ponemos un “1”. Por ejemplo el nº decimal 80

                               128         64           32           16           8             4             2             1

                                   0           1             0             1           1             0             0             0              

 

Aunque esto parece largo de hacer, no lo es. La explicación puede resultar  larga y pesada, pero sólo son unos pocos cálculos mentales, se puede pasar cualquier número de binario a decimal y viceversa en pocos segundos.

Espero que os sirva de  ayuda, sobre todo a los informáticos que se empiecen a dedicar al Subneting y Superneting

2 comentarios:

  1. ¡Esto es de primero de informática!

    Buena explicación.

    Un Saludo.

    ResponderEliminar
  2. Ya, pero hay informáticos que no tienen ni idea y buscan paginas para la conversión online. Creo que esto es más rápido ¿no?

    ResponderEliminar