Maison > Java > javaDidacticiel > Inverser les bits réels d'un nombre donné en Java

Inverser les bits réels d'un nombre donné en Java

PHPz
Libérer: 2023-09-07 23:41:06
avant
1181 Les gens l'ont consulté

Inverser les bits réels dun nombre donné en Java

É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.

Regardons différentes situations d'entrée et de sortie

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>.
Copier après la connexion

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>.
Copier après la connexion

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.

La méthode utilisée dans le programme ci-dessous est la suivante

  • À 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

Exemple

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));
   }
}
Copier après la connexion

Output

Si nous exécutons le code ci-dessus, il générera le sortie suivante

Reverse actual bits of the given number
11
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal