Es importante recordar que cada ‘1’ representa una potencia de dos Y comenzamos en 0.
00000 = 0
00001 = 2 ^ 0 = 1
00010 = 2 ^ 1 = 2
00100 = 2 ^ 2 = 4
01000 = 2 ^ 3 = 8
10000 = 2 ^ 4 = 16
Y cuando establecemos más de un bit, simplemente estamos sumando esos valores
- Cuando quitamos un borde de un árbol, parece obvio que nos quedan dos árboles, pero ¿cómo podríamos probar esto?
- Cómo generar un número aleatorio en C
- ¿De qué manera es el capitalismo como un algoritmo?
- ¿Qué estrategia emplearías para vencer a un algoritmo de computadora jugando póquer matemáticamente perfecto?
- ¿Por qué me cuesta entender la recursividad?
00011 = (00010 + 00001) = (2 ^ 1 + 2 ^ 0) = (2 + 1) = 3
01011 = (01000 + 00010 + 00001) = (2 ^ 3 + 2 ^ 1 + 2 ^ 0) = (8 + 2 + 1) = 11
Ahora vamos a revertirlo. Usando solo las potencias de 2 que se muestran arriba (1, 2, 4, 8, 16), convierta algunos decimales a binario.
13 = (8 + 4 + 1) = (2 ^ 3 + 2 ^ 2 + 2 ^ 0) = (01000 + 00100 + 00001) = 01101
30 = (16 + 8 + 4 + 2) = (2 ^ 4 + 2 ^ 3 + 2 ^ 2 + 2 ^ 1) = (10000 + 01000 + 00100 + 00010) = 11110
Entonces, cada vez que desee convertir de binario a decimal, simplemente descubra la potencia de 2 que se asocia con cada “1” y los suma.
Y cada vez que quieras convertir de decimal a binario, haces lo contrario.
“Simplemente” no implica que las personas solo miren 110101001010101 y sepan que es 27221. Estoy seguro de que hay algunas personas que pueden hacerlo, pero no soy uno de ellos.