toString(), String() 차이와 3진법 뒤집기 알고리즘 문제

nevermind·2022년 11월 18일
0

알고리즘

목록 보기
1/11
post-custom-banner

String(인자)함수

  • 인자를 문자열로 변환
  • new키워드와 함께 새로운 문자열 객체의 생성자가 될 수 있음
let num1 = 10
console.log(typeof num1) // number
let str1 = String(num1)
console.log(typeof str1) // string
let String1 = String(100) // "100"
let newString = new String(100) // String {"100"}

toString()

  • 숫자 또는 문자열의 메서드로 문자열 변환 사용 가능
let String1 = String(400).toString() // "400"
let newString = new String(400).toString() // "400"
  • 숫자의 메서드(radix)로 사용될 경우 인자로 2~36 사이의 값을 대입하면 숫자를 해당 진수로 변환하는 문자열을 얻을 수 있음
    numObj.toString([radix])
  • Number객체에서 toString()메서드는 특정 진수로 객체를 표현한 문자열을 환원
  • radix값 이 지정되지 않으면, 임의로 10진수로 가정
let x = 6;

console.log(x.toString(2));       // displays '110'
console.log((254).toString(16));  // displays 'fe'

2진법, 8진법, 16진법이란?

  • 2진법 : 0~1까지 2개의 숫자를 사용하여 수를 표현
  • 8진법 : 0~7까지 8개 숫자를 사용해서 수를 표현
  • 16진법: 0~9까지 10개의 숫자를 사용하고 남은 자리는 A~F까지 6개의 문자를 사용해서 수를 표현
    =>관련된 자세한 설명은 https://itbeginner2020.tistory.com/17

알고리즘문제

  • 3진법문제
function solution(n) {
    let num = n.toString(3).split('').reverse().join('')
    return parseInt(num,3)
}
//숫자.toString(3) 3진법으로
//reverse()하기 위해 배열로 변환
//3진법을 반전시키고 문자열 하나로 만들어줌
//parseInt(string, radix) radix에 현재 어떤 진수인지 넣고 10진수로 변환해준다
  • 10진수에서 n진수로 변환 방법 number.toString(진수숫자)
  • 2진수를 10진수로 변환하기

    - parseInt({n진수}, n) n진수를 10진수로 변환
let binary = "1111111111";
let decimal = parseInt(binary, 2);	// 2진수에서 10진수로

let octal = "1777";
let decimal = parseInt(octal, 8);	// 8진수에서 10진수로

let hex = "3ff";
let decimal = parseInt(hex, 16);	// 16진수에서 10진수로
  • parseInt(string, radix) 숫자로 변환하거나 원래 진수를 넣어줘서 10진수로 바꿔준다

출처: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/toString
https://c17an.netlify.app/blog/javascript/String%EA%B3%BC-toString%EC%9D%98-%EC%B0%A8%EC%9D%B4/article/
https://jsikim1.tistory.com/161

profile
winwin
post-custom-banner

0개의 댓글