음수가 아닌 정수 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)); } }
위 코드를 실행하면 다음이 생성됩니다. 출력
Reverse actual bits of the given number 11
위 내용은 Java에서 주어진 숫자의 실제 비트를 반전시킵니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!