Étant donné un entier non négatif n. Le but est d'inverser les bits de n et de rapporter le nombre résultant. Lors de l'inversion des bits, la forme binaire réelle de l'entier est utilisée ; les 0 non significatifs ne sont pas pris en compte.
Entrée − 13
Sortie − Inversez les bits réels du nombre donné 11
(13)<sub>10</sub> = (1101)<sub>2</sub>. After reversing the bits, we get: (1011)<sub>2</sub> = (11)<sub>10</sub>.
Explication − Obtenez les bits binaires du nombre d'entrée, puis il est inversé et finalement converti au format décimal et renvoyé en sortie.
Entrée − 18
Sortie − Inversez les chiffres réels du nombre donné 9.
(18)<sub>10</sub> = (10010)<sub>2</sub>. After reversing the bits, we get: (1001)<sub>2</sub> = (9)<sub>10</sub>.
Explication - Les bits binaires sont extraits du nombre d'entrée, puis inversés et enfin convertis au format décimal, qui est renvoyé en sortie.
À l'intérieur de la méthode principale
Entrez le numéro et transmettez-le à la méthodereverseBinaryBits(int input)
Dans la méthode reverseBinaryBits(int input) internal
Initialisez la variable rev_input pour stocker les bits inversés
La boucle itère jusqu'à ce que l'entrée soit supérieure à 0 (on commence à parcourir par la droite)
Utilisez un peu à droite opération de décalage pour récupérer bit par bit la représentation binaire de n chaque bit et les accumuler dans rev en utilisant une opération de décalage un peu à gauche
class TutorialsPoint{ public static int reverseBinaryBits(int input){ int rev_input = 0; while (input > 0){ rev_input <<= 1; if ((int) (input & 1) == 1){ rev_input ^= 1; } input >>= 1; } return rev_input; } public static void main(String[] args){ int input = 13; System.out.println("Reverse actual bits of the given number"); System.out.println(reverseBinaryBits(input)); } }
Si nous exécutons le code ci-dessus, il générera le sortie suivante
Reverse actual bits of the given number 11
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!