Lorsque les nombres négatifs ne sont pas pris en compte, pour cette analyse, nous pouvons voir que lorsque la valeur d'entrée est inférieure à 1, ce nombre n'est certainement pas une puissance entière de 2.
Lorsque la valeur d'entrée est supérieure à un, nous pouvons trouver une règle. Le pouvoir entier de 2 est exprimé en binaire comme:
2d = 10b; 4d = 100b; 8d = 1000b
Le premier morceau du binaire est un, et le reste est nul.
Par conséquent, nous pouvons juger que lorsque la valeur d'entrée est convertie en binaire, le premier bit est un et les autres bits sont 0, de sorte que la valeur d'entrée est une puissance entière de 2.
Cependant, faire cela est trop lourd. Nous ne pouvons juger la position de "1" dans le numéro binaire que pour la dernière fois, et utiliser la chaîne, LastIndexof (); méthode.
Et nous pouvons également constater que cette règle s'applique également au cas où l'entrée 1 est entrée.
Ensuite, le code concis a vu le jour.
public static boolean ispoweroftwo (int n) {String str = Integer.tobinaryString (n); if (n <1) return false; else if (str.lastIndexof ("1") == 0) return true; elsereturn false; }La méthode Java ci-dessus pour déterminer si une puissance entière de 2 est le contenu entier partagé par l'éditeur. J'espère que cela pourra vous donner une référence et j'espère que vous pourrez soutenir Wulin.com plus.