이진수 뒤집기

1440 단어 LeetCode
주어진 32자리의 기호가 없는 정수의 이진 위치를 뒤집다.
예:
입력: 43261596 출력: 964176192 해석: 43261596의 2진법 표시 형식은 00000001010101000011111100111100, 964176192이고 그 2진법 표시 형식은 0011100101111000010101010100000000이다.
사고방식 2진법은 일반적으로 비트 연산과 관련이 있기 때문에 Integer를 통해 2진법을 직접 변환한 다음에 반복해서 중첩할 수 있지만 더 좋은 방법이 있다. 코드는 다음과 같고 주석이 있다.
public class Solution {
    // you need treat n as an unsigned value
    public int reverseBits(int n) {
        int result = 0;
        int i = 0;
        while(i<32){
            int temp = n&1;  //        0  1
            n = n>>1;    //   1 
            result = result<<1|temp;  //           1 ,  |  ,1010    10100|1==10101
            i++;
        }
        return result;
    }
}

좋은 웹페이지 즐겨찾기