Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 주어진 정수의 비트 순서를 거꾸로 뒤집는 방법

이번 글에서는 주어진 정수의 비트(bit) 순서를 거꾸로 뒤집는 자바스크립트 프로그램을 작성해 보겠습니다.

예를 들어 다음과 같습니다.

56 -> 111000
비트를 뒤집으면 7 -> 111

또 다른 예시입니다.

234 -> 11101010
비트를 뒤집으면 87 -> 1010111

접근 방식

가장 간단하고 직관적인 방법은 숫자를 2진수 문자열로 변환한 뒤, 문자열의 순서를 뒤집고, 이를 다시 10진수 정수로 되돌리는 것입니다. 구체적인 단계는 다음과 같습니다.

  • toString(2) 메서드를 사용해 숫자를 2진수 문자열로 변환합니다.
  • split('')으로 문자열을 개별 문자 배열로 나눈 후 reverse()로 순서를 뒤집습니다.
  • join('')으로 배열을 다시 하나의 문자열로 합칩니다.
  • parseInt(str, 2)를 사용해 뒤집힌 2진수 문자열을 10진수 정수로 변환해 반환합니다.

예제 코드

const num1 = 789;
const num = 43;
const reverseBits = (num = 1) => {
   const str = num.toString(2);
   const arr = str.split('').reverse();
   const arrStr = arr.join('');
   const reversedNum = parseInt(arrStr, 2);
   return reversedNum;
}
console.log(reverseBits(num));
console.log(reverseBits(num1));

출력 결과

콘솔에 출력되는 결과는 다음과 같습니다.

53
675

위 코드에서 43은 2진수로 101011이며, 이를 뒤집으면 110101, 즉 10진수 53이 됩니다. 마찬가지로 789는 2진수 1100010101이고, 뒤집으면 1010100011, 즉 675가 됩니다.