본문 바로가기

코딩/Javascript

자바스크립트 - 2진법, 8진법, 16진법 숫자를 간단하게 10진법으로 변환하기

반응형
const binary = 0b101;

console.log(binary); // 5

자바스크립트에서 숫자 앞에 진법 접두사(0b, 0o, 0x)가 있으면 자동으로 10진법으로 변환한다.

 

2진법으로 표기 시 > 예: 0b10

8진법으로 표기 시 > 예: 0o10

16진법으로 표기 시 > 예: 0x10

 

 

 

const octalOne = 0o101;	// 소문자 o
const octalTwo = 0O101;	// 대문자 O

console.log(octalOne);	// 65
console.log(octalTwo);	// 65

숫자 앞에 진법 접두사를 표시할 때, 접두사 끝의 알파벳이 대문사 혹은 소문자이던 상관없다.

 

 

 

const binary = "0b101";
const decimal = Number(binary); // binary라는 변수를 10진법 숫자로 변환하기

console.log(decimal); // 5

변환하려는 숫자의 타입이 String여도 숫자 값 앞에 진법 접두사가 있고

Number() 함수를 사용하면 숫자를 자동으로 10진법으로 변환할 수 있다.

 

 

 

2진법 숫자를 10진법으로 변환하기.

const binaryWithoutPrefix = 1011;			// 2진법 숫자 받기
const binaryWithPrefix = "0b" + binaryWithoutPrefix;	// 2진법 숫자 앞에 접두사(0b) 붙이기
const decimal = Number(binaryWithPrefix);		// 접두사를 붙인 2진법 숫자를 10진법으로 변환

console.log(decimal);	// 11

비록 1011라는 값엔 진법 접두사가 없지만, 입력 값 앞에 2진법 접두사를 붙여서 2진법으로 변환할 수 있게 만들었다.

마지막으로 Number() 함수를 활용해 1011 값을 2진법으로 인식하고 10진법으로 변환한 모습.

 

8진법과 16진법 숫자를 10진법 숫자로 변환하려면, 위 예제와 같이 하되 진법 접두사만 바꾸면 된다. 

 

 

진법 변환에 대한 자세한 내용

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Numbers_and_dates

반응형