>Java >java지도 시간 >Java에서 주어진 숫자의 실제 비트를 반전시킵니다.

Java에서 주어진 숫자의 실제 비트를 반전시킵니다.

PHPz
PHPz앞으로
2023-09-07 23:41:061203검색

Java에서 주어진 숫자의 실제 비트를 반전시킵니다.

음수가 아닌 정수 n이 주어졌습니다. 목표는 n의 비트를 반전시키고 결과 숫자를 보고하는 것입니다. 비트를 반전할 때 정수의 실제 이진 형식이 사용됩니다. 선행 0은 고려되지 않습니다.

다양한 입출력 상황을 살펴보자

Input − 13

Output − 주어진 숫자 11의 실제 비트를 반전

(13)<sub>10</sub> = (1101)<sub>2</sub>.
After reversing the bits, we get:
(1011)<sub>2</sub> = (11)<sub>10</sub>.

Explanation − 입력 숫자에서 이진 비트를 가져온 다음 이를 반전되어 최종적으로 10진수 형식으로 변환되어 출력으로 반환됩니다.

입력 − 18

출력 − 주어진 숫자 9의 실제 숫자를 반대로 바꿉니다.

(18)<sub>10</sub> = (10010)<sub>2</sub>.
After reversing the bits, we get:
(1001)<sub>2</sub> = (9)<sub>10</sub>.

Explanation − 이진수 비트는 입력 숫자에서 가져온 다음 반전되고 마지막으로 십진수 형식으로 변환되어 출력으로 반환됩니다.

아래 프로그램에서 사용하는 메소드는 다음과 같습니다

  • 메인 메소드 내부

    • 숫자를 입력하여 메소드에 전달reverseBinaryBits(int input)

  • 메소드에서 reverseBinaryBits(int input) 내부

    • 역전된 비트를 저장하기 위해 rev_input 변수를 초기화합니다.

    • 루프는 입력이 0보다 클 때까지 반복됩니다(오른쪽부터 탐색을 시작합니다)

      • 비트 오른쪽 사용 n 각 비트의 이진 표현을 비트별로 검색하고 비트 왼쪽 시프트 연산을 사용하여 이를 rev로 누적하는 시프트 연산

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

위 코드를 실행하면 다음이 생성됩니다. 출력

Reverse actual bits of the given number
11

위 내용은 Java에서 주어진 숫자의 실제 비트를 반전시킵니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제