😎풀이

  1. 32비트 연산이므로 32번 반복하며 순회한다.
    1-1.n의 각 비트를 거꾸로 뒤집어 result에 할당한다.
  2. 결과값을 32비트 부호 없는 정수로 변환한다.
function reverseBits(n: number): number {
    let result = 0;
    for (let i = 0; i < 32; i++) {
        // 결과값을 왼쪽으로 시프트하고, n의 마지막 비트를 결과값에 추가
        result = (result << 1) | (n & 1);
        // n을 오른쪽으로 시프트하여 다음 비트를 준비
        n = n >>> 1;
    }
    // 결과값을 32비트 부호 없는 정수로 변환
    return result >>> 0;
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글