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
PHPzavant
2023-09-07 23:41:061185parcourir

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

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.

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));
   }
}

Output

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer