Pourquoi le nombre de bits dans la représentation binaire du nombre décimal 16 == 5?
-
10-10-2019 - |
Question
Cette question ne probablement pas stackoverflow typique, mais je ne suis pas sûr où poser cette petite question à moi.
Problème:
Trouvez le nombre de bits dans la représentation binaire du nombre décimal 16?
Maintenant, j'essayé de résoudre celui-ci en utilisant la formule 2 $ ^ n = 16 \ Rightarrow n = 4 $, mais la bonne réponse tel que suggéré par mon module est 5. Quelqu'un pourrait expliquer comment?
Après avoir lu une réponse, (et je 10 autres bonbons à la menthe avant que je puisse accepter la bonne réponse) Je pense que cela est sans doute une explication, qui sera conforme à la formule mathématique,
Pour ce qui représente 16 nous devons représenter 17 symboles (0.16), donc 2 $ ^ n = 17 \ Rightarrow n = 4,08746 $ mais n besoin d'être un entier, alors n = 5 $ $
La solution
Pensez à la façon dont fonctionne binaires:
Bit 1: Add 1
Bit 2: Add 2
Bit 3: Add 4
Bit 4: Add 8
Bit 5: Add 16
Ainsi 16 serait: 10000
Autres conseils
Avec 4 bits, vous pouvez représenter des nombres de 0 à 15 .
Alors oui, vous avez besoin 5 bits pour représenter 16.
Decimal - 16 8 4 2 1
Binary - 1 0 0 0 0
Donc, pour quoi que ce soit jusqu'à 31 décimales vous avez seulement besoin de 5 bits.
Ceci est une erreur de fencepost classique.
Comme vous le savez, les ordinateurs aiment commencer à compter de 0.
Donc, pour représenter 16, vous avez besoin bits 0, 1, 2, 3 et 4 (= étage (log2 (16))).
Mais pour contenir réellement bits 0 à 4, vous avez besoin de 5 bits.