JS100 진수변환

43

사용자에게 숫자를 입력받고 이를 2진수를 바꾸고 그 값을 출력해주세요.


1번 방법

let n = Number(prompt('10진수 숫자를 입력하세요.')).toString(2);

console.log(n) // prompt로 받은 값을 Number()로 정수화, toString거치면서 string된다.






2번 방법

let a = prompt('10진수를 입력해주세요.') //4 입력시
let b = []; 
let result = ''; 

while (a){  // a 가 참인 경우 (a 가 0 이 되면 false 가 됨) while 문을 반복
	b.push(a % 2); 
	a = parseInt(a / 2, 10); 
}
b.reverse(); // [0, 0, 1]

b.forEach((n) => {
  result += n; 
})

console.log(result); 




toString()과 parseInt()

10진수를 다른 진수로 변환하기 위해서는 toString()을,

다른 진수를 10진수로 변환하기 위해서는 parseInt()를 쓴다.

toString()

특정 객체를 문자열로 반환해주는 기능말고 진수변환에도 이용된다.
인자로 2와 36사이의 정수가 들어간다. radix라고 함.
그 외 다른 수가 들어간다면 RangeError 뜬다.

let intNum = 3;
console.log(intNum.toString(2));	//11


intNum = 32;
console.log(intNum.toString(16));	//20
// 2*16의1승 = 32

반환된 11, 20의 타입은 String 이다.

parseInt()

인수로는 ('변환시키고자하는 문자열', 해당 수의 진수) 가 들어간다.
물론 두번째 인자도 radix다.

let intNum = "11";
let parsing = parseInt(intNum, 2);
console.log(parsing);   //3  

좋은 웹페이지 즐겨찾기