[Javascript] 진법 변환 (toString(), parseInt())

    728x90
    반응형

     

     

     

     

    백준 문제를 풀다가 하나도 모르겠는 부분이 나왔다.

    진법 변환...

    이 부분은 시간을 끌 필요가 없다 생각하고 바로 공부하고와서 다시 풀어보기로 결정했다.

    그 내용을 블로그에 올리려 한다.

     

    진법변환에는 toString()과 parseInt가 사용된다.

     

    둘의 차이는

    10진수를 다른 수로 변환시키는가, 다른 수를 10진수로 변환시키는가

    에 있다.

     

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

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

     

     

     

     

    toString()

    특정 객체를 문자열로 반환해준다.

    원하는 10진수를 특정 진수로 변환하고 싶을때 사용한다.

    어떤 수를 .toString(몇진수로 변환하고 싶은지)

    때문에 인자로 2와 36사이의 정수가 들어간다. radix라고 함.

    let intNum = 3;
    console.log(intNum.toString(2));	//11
    //11은 eleven이 아니고 이진수의 00011임.
    
    intNum = 32;
    console.log(intNum.toString(16));	//20
    //20은 twenty가 아니고 16진수의 00020임(2*16).

     

     

    함수의 이름에도 적혀있듯, 반환된 11과 20의 타입은 string이다.

    let intNum = 32;
    let stringed = intNum.toString(16);
    console.log("type of intNum: ",typeof(intNum));		//type of intNum:  number
    console.log("type of stringed: ",typeof(stringed));		//type of stringed:  string
    

    radix 값으로 2와 36사이의 정수가 아닌 다른 수가 들어간다면 

    RangeError 에러가 뜬다.

     

     

     

     

    parseInt()

    문자열을 특정 진수의 정수로 변환한다.

    인수로는 parseInt('변환시키고자하는 문자열',  해당 수의 진수) 가 들어간다.

    여기서 문자열은 타입이 문자열이므로 숫자여도 ''안에 삽입한다.

    물론 두번째 인자도 radix다.

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

     

     

    이렇게 10진수로 변환된 2진수는 문자열이 아니라 상수가 된다.

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

     

     

     

     

    특정 진수로 변화된 문자를 다른 특정 진수로 바꾸는 방법

    그 방법은 10진수로 바꾼 다음에 특정 진수로 바꾸는 것이다.

    예: 10진수 -> 2진수 -> 16진수로 변환

     

    let dec = 123;
    let bin = dec.toString(2); // 10진수를 2진수로 바꿈
    
    let a = parseInt(bing, 2); // 2진수를 다시 10진수로 바꿈
    
    let b = a.toString(16); // 10진수로 바뀐것을 다시 16진수로 바꿈
    
    
    즉, parseInt(bing, 2).toString(16) // 2진수를 16진수로 바꾸기

     

     

     

     

     

     

     

     

     

     

     

     

     

    참조!

    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

     

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

    자바스크립트 문제를 풀다가 10진수를 2진수로, 2진수를 10진수로 바꿔야 할 상황이 생겼다. 이를 해결하기 위한 함수는 toString()과 parseInt()다. 둘의 차이는 10진수를 다른 수로 변환시키는가, 다른

    jae04099.tistory.com

     

    728x90
    반응형

    댓글