Pour tester si un entier non signé est de la forme Qu'est-ce que c'est censé égaler? C'est-à-dire p> 2 ^ n-1 code> Nous utilisons:
3 Réponses :
Un certain nombre de formulaires Si nous en ajoutant un à cela, nous obtenons 8: p> 2 ^ n-1 code> aura toutes les bits jusqu'au NTH Set. Par exemple,
2 ^ 3-1 code> (7) est le suivant:
0b1000
Je pense que vous vouliez dire 2 ^ n-1 code> au début
Pendant que vous et l'autre répondeur, faites un bon travail d'expliquer pourquoi il est nécessaire que x & (x + 1) == 0 code> pour
x code> soit du formulaire
2 ^ n-1 code>, aucun de vous n'a même pas allusion à la suffisance de la propriété. Ou dans d'autres termes, pourquoi ne peut pas un numéro
x code> qui n'est pas écrit
0b0111..11 code> ne pas avoir la propriété
x & (x + 1) == 0 0 0 code>?
@Pascal: Si vous souhaitez répondre et aller plus en détail, je serais heureux de uplifier une telle réponse. :-)
@James je suis allé de l'avant et j'ai rédigé une courte explication.
zéro. Si X est 2 ^ n-1, il s'agit d'une chaîne ininterrompue de 1 en binaire. Un de plus que cela est un 1 suivi d'une chaîne de zéros de même longueur que x, les deux nombres n'ont donc pas de bits en commun dans n'importe quel endroit, de sorte que le et les deux est zéro. P>
En complément aux réponses existantes, voici une explication courte de la WHERE NUMÉROS Pour un numéro pour un numéro en conclusion, si X code> qui ne sont pas du formulaire
0B00000 code> (zéro) ou
0B0111 .. 11 code> (tous les chiffres les plus bas, ceux-ci sont tous les numéros 2 ^ n-1 pour N> 0) Ne pas avoir la propriété
x & (x + 1) == 0 code>.
x code> du formulaire
0b ???? 1000..00 code>,
x + 1 code> a les mêmes chiffres que
x code> sauf pour le bit le moins significatif, donc
x & (x + 1) code> a au moins un bit défini, le bit qui a été affiché comme étant défini dans
x code >. À titre d'explication plus courte: p>
x code> du formulaire
0b ???? 10111..11 code >:: p>
x code> n'est ni zéro ni écrit en binaire avec tous les chiffres les plus bas définis, puis
x & (x +1) code> n'est pas zéro. P> p>