En lugar de simplemente decirle qué es, ¿por qué no explicar cómo calcularlo?
Una manera razonablemente fácil es continuar dividiendo el número entre 2 (arrojando fracciones, es decir, tomando el piso del resultado) hasta que el valor se convierta en 0. Cada vez verificando si hubo un residuo (luego coloque un 1) o no (luego coloque 0).
Repasemos esto:
- ¿Cuál fue el algoritmo utilizado por AlphaGo para ganar el juego de Go contra el campeón europeo de Go humano?
- ¿Cómo funcionan los algoritmos de procesamiento de cadenas en CUDA?
- En un algoritmo de búsqueda binaria existe la línea, si la clave == A [mid] return (mid + 1). ¿Por qué (mediados + 1)?
- ¿Cómo funciona esta recursión?
- ¿Podemos, y qué significa, 'crear algoritmos sin codificación'?
- 600/2 = 300 res 0 → hasta ahora el binario es 0
- 300/2 = 150 res 0 → 00
- 150/2 = 75 res 0 → 000
- 75/2 = 37 res 1 → 1000
- 37/2 = 18 res 1 → 11000
- 18/2 = 9 res 0 → 011000
- 9/2 = 4 res 1 → 1011000
- 4/2 = 2 res 0 → 01011000
- 2/2 = 1 res 0 → 001011000
- 1/2 = 0 res 1 → 1001011000
De hecho, es lo mismo que hacer para escribir un número decimal normal. Por ejemplo, digamos que tiene un grupo de caracteres hash ################## que desea “contar”:
- ################## / 10 = # res ######## → 8
- # / 10 = _ res # → 18
Tan pronto como te des cuenta, los “números” y la forma en que los escribimos no son lo mismo, más fácil te resulta usar diferentes formas de escribir el mismo número. La forma en que los escribimos es simplemente una conveniencia, el uso de decimales por costumbre es realmente muy arbitrario, la mayoría cree que es solo porque tenemos diez dedos. De hecho, si nos fijamos en el pasado lejano, había al menos otro sistema de numeración posicional en uso regular (uno que influye en cómo definimos el tiempo):
Los antiguos mesopotámicos en realidad usaban un esquema de números sexagesimales. Es decir, contaron en los años 60. Y eso en realidad se siente mucho mejor cuando comienzas a darte cuenta de lo útil que puede ser. P.ej