웹/JavaScript

[JavaScript] 진수변환 toString() / parseInt()

세고래 2021. 5. 20. 02:34

배워가는 학생입니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다!🤗

 

알고리즘 문제 중에, 진수변환 문제가 종종 있다.

나는 이걸 여태까지는 직접 % 를 통해 구해왔었는데,

자바스크립트 함수로 이를 쉽게 변환할 수 있다는 사실을 알고 정리해보려고 한다!

 

1) toString()

numObj.toString(radix)

- radix: 2~26 사이의 정수 중, 변환하고자 하는 수가 몇진수인지 적어주면 된다.

만약, 2~26 사이의 값이 아니라면 에러가 발생한다.

 

10진수를 다른 진수로 변환할 때 사용한다.

원래의 toString()은 '특정 객체를 문자열로 반환해주는' 함수이지만, 특정 진수로 변환하고자 할 때에는

이렇게 사용하면 특정 진수로 변환해준다.

즉, 변환하고 자 하는 수.toString(특정진수) 로 적어주면 된다.

 

let x = 6;
console.log(x.toString(2));       // '110' 6을 2진수로
console.log((254).toString(16));  // 'fe' 254를 16진수로
2) parseInt()

parseInt(string, radix);

- string: 변환하고자 하는 수. 만약 문자열이 아니면 문자열로 변환.

- radix: 변환하고자 하는 수의 진수

 

다른 진수를 10진수로 변환할 때 사용한다.

parseInt(변환하고자 하는 값, 변환하고자 하는 값의 진수)로 적어주는데

이때 변환하고자 하는 값의 첫번째 글자가 숫자로 변환될 수 없다면 사용하지 못한다.

또한, 문자와 숫자가 섞여있다면 문자가 나오기 전까지만 변환하고 parseInt는 반드시 정수의 값을 리턴한다.

 

parseInt(" 0xF", 16);
parseInt(" F", 16);
parseInt("17", 8);
parseInt(021, 8);
parseInt(15.99, 10);
//해당값들은 모두 15를 리턴한다
3) 참고자료

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/parseInt

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/toString

https://jae04099.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%A7%84%EC%88%98%EB%B3%80%ED%99%98-toString-parseInt

728x90