8진수, 10진수, 16진수

문제

언어

  • JavaScript

순서도

  1. 주어지는 정수 X 의 진수에 맞게 10진수로 변환해서 출력

문제 풀이 step 1

  • 8진수, 10진수, 16진수 중에 하나인 정수 X가 주어집니다. 이 정수 X를 10진수로 변환해서 출력하는 문제입니다.
  • parseInt() 함수를 사용해서 각 진수에 맞게 변환 후 출력하면 정답입니다.
  • ‘0x’로 시작하는 정수는 16진수로 그에 맞게 parseInt(string, 16) 으로 변환하고,
  • ‘0’ 으로 시작하는 정수는 8진수로 그에 맞게 parseInt(string, 8) 로 변환하면 됩니다.
  • 추가 설명은 주석으로 작성하겠습니다.

문제 풀이 step 2

  • parseInt(string, radix)
    • string을 radix진법으로 읽어서, 10진법으로 변환 후 return하는 함수
    • string
      • 분석할 값이 들어옵니다. 만약 string이 문자열이 아니라면 문자열로 변환합니다.
      • 문자열의 선행 공백은 무시합니다.
    • radix
      • string이 표현하는 정수를 나타내는 2와 36 사이의 진수입니다.
      • optional 값입니다.

Reference.

소스 코드

const input = require("fs")
	.readFileSync("/dev/stdin")
	.toString()
	.trim()
	.split("\n");

const solution = (input) => {
	const num = input[0];

	// 0x 로 시작하는 16진수의 변환
	if (num[0] === "0" && num[1] === "x") return parseInt(num, 16);

	// 0 으로 시작하는 8진수의 변환
	if (num[0] === "0") return parseInt(num, 8);

	// 10진수 변환
	return parseInt(num);
};

console.log(solution(input));