Combien de valeurs peuvent être représentées avec n bits?

Par exemple, si n=9, alors combien de valeurs différentes peuvent être représentées en 9 chiffres binaires (bits)?

je pense que si je mets chacun de ces 9 bits à 1, je rendrai le plus grand nombre possible que ces 9 chiffres sont capables de représenter. Par conséquent, la valeur la plus élevée est 1 1111 1111 qui est égal à 511 à la décimale. Je conclus que, par conséquent, 9 chiffres de binaire peut représenter 511 valeurs différentes.

mon processus de pensée correcte? Si non, quelqu'un pourrait-il veuillez expliquer ce que je suis absent? Comment puis-je généraliser à bits?

40
demandé sur NullUserException 2010-09-28 05:26:14

7 réponses

29 = 512 valeurs, parce que c'est le nombre de combinaisons de zéros et de uns que vous pouvez avoir.


Ce que ces valeurs représentent toutefois dépend du système que vous utilisez. Si c'est un entier non-signé, vous devrez:

000000000 = 0 (min)
000000001 = 1
...
111111110 = 510
111111111 = 511 (max)

complément de two, qui est couramment utilisé pour représenter des nombres entiers en binaire, vous devrez:

000000000 = 0
000000001 = 1
...
011111110 = 254
011111111 = 255 (max)
100000000 = -256 (min) <- yay integer overflow
100000001 = -255
...
111111110 = -2
111111111 = -1

En général, avec k bits que vous pouvez représenter 2 k valeurs. Leur portée dépend du système que vous utilisez:

non signé: 0 à 2 k-1

Signé: -2 k-1 à 2 k-1-1

50
répondu NullUserException 2010-09-28 02:58:10

ce que vous manquez: Zéro est une valeur

10
répondu SamStephens 2010-09-28 01:27:58

Une meilleure façon de le résoudre est de commencer petit.

commençons par 1 bit. Qui peut être soit 1 ou 0. C'est 2 valeurs, ou 10 en binaire.

Maintenant 2 bits, qui peut être soit 00,01,10 ou 11 C'est 4 valeurs, ou 100 en binaire... Voir le modèle?

2
répondu Randy the Dev 2010-09-28 01:33:51

OK, puisqu'il a déjà "fuité": vous manquez zéro, donc la bonne réponse est 512 (511 est le plus grand, mais c'est de 0 à 511, pas de 1 à 511).

en passant, un bon exercice de suivi serait de généraliser ceci:

How many different values can be represented in n binary digits (bits)?
1
répondu schnaader 2010-09-28 01:29:32

Sans vouloir vous donner la réponse ici est la logique.

Vous avez 2 valeurs possibles dans chaque chiffre. vous avez 9 d'entre eux.

comme dans la base 10 où vous avez 10 valeurs différentes par chiffre dire que vous avez 2 d'entre eux (ce qui fait de 0 à 99) : 0 à 99 fait 100 nombres. si vous faites le calcul, vous avez une fonction exponentielle

base^numberOfDigits:
10^2 = 100 ;
2^9 = 512
1
répondu pastjean 2010-09-28 01:30:49

il y a une façon plus facile d'y penser. Commencez avec 1 bit. Cela peut évidemment représenter 2 valeurs (0 ou 1). Ce qui se passe quand on ajoute un peu? Nous pouvons maintenant représenter deux fois plus de valeurs: les valeurs que nous pourrions représenter avant avec un 0 ajouté et les valeurs que nous pourrions représenter avant avec un 1 Ajouté.

ainsi le nombre de valeurs que nous pouvons représenter avec n bits est juste 2^N (2 à la puissance n)

1
répondu dave 2010-09-28 01:32:10

ce qui vous manque, c'est le schéma d'encodage utilisé. Il y a différentes façons d'encoder des nombres binaires. Examiner signé nombre de représentations. Pour 9 bits, les plages et la quantité de nombres qui peuvent être représentés différeront selon le système utilisé.

1
répondu James Kastrantas 2010-09-28 01:57:36