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

JavaScript에서 2진수를 10진수로 변환하는 방법 완벽 가이드

JavaScript에서 2진수를 10진수로 변환하는 방법

JavaScript에서는 내장 메서드를 활용하거나 직접 알고리즘을 구현하여 2진수(binary)를 10진수(decimal)로 손쉽게 변환할 수 있습니다. 아래에서 가장 많이 사용되는 대표적인 변환 방법과 예제 코드를 소개합니다.

1. parseInt() 함수 사용하기

parseInt() 함수에 두 번째 인자로 진법(radix)을 지정하면 간단하게 변환할 수 있습니다. 2진수 문자열을 10진수로 바꾸려면 진법 값으로 2를 전달하면 됩니다. 이것이 가장 널리 쓰이고 권장되는 방법입니다.

const binary = "1010";
const decimal = parseInt(binary, 2);
console.log(decimal); // 10

2. Number() 객체와 0b 접두사 사용하기

ES6부터 지원되는 2진수 리터럴 접두사 0b를 활용하면 Number() 객체로도 변환이 가능합니다. 코드가 짧아 가독성이 좋다는 장점이 있습니다.

const decimal = Number(0b1010);
console.log(decimal); // 10

3. 반복문으로 직접 구현하기

내장 함수 없이 변환 원리를 이해하고 싶다면, 각 자릿수에 2의 거듭제곱을 곱해 모두 더하는 방식으로 직접 구현할 수 있습니다.

function binaryToDecimal(binaryStr) {
  let decimal = 0;
  for (let i = 0; i < binaryStr.length; i++) {
    decimal += Number(binaryStr[i]) * Math.pow(2, binaryStr.length - 1 - i);
  }
  return decimal;
}

console.log(binaryToDecimal("1010")); // 10

변환 시 주의사항

입력값이 유효한 2진수인지 반드시 확인해야 합니다. '0'과 '1' 외의 문자가 포함되어 있으면 parseInt()NaN을 반환하거나 예상과 다른 결과를 낼 수 있으므로, 정규식(/^[01]+$/)으로 검증한 후 변환하는 것이 안전합니다.

마무리

실무에서는 parseInt(문자열, 2)를 사용하는 것이 가장 간결하고 오류 가능성이 적습니다. 학습 목적이라면 반복문을 활용한 직접 구현을 통해 2진수와 10진수의 변환 원리를 깊이 이해해 보시기 바랍니다.