본문 바로가기
Algorithm

기수 변환

by 융디's 2024. 4. 17.
728x90
기수 변환

기수 변환

@24.03.20

하나의 수를 다른 기수(진법)으로 표현하는 기수 변환에 대해서 알아보자.

우리는 보통 10진법을 사용하나, 2진법, 8진법 등 다양한 기수를 사용하기도 한다.

방법 1. 분할과 나머지를 이용

💡
수를 새로운 기수로 나누고, 나머지를 이용하여 새로운 진법의 수를 구성하는 과정을 반복
  • 원래의 수를 새 기수로 나눈다.
  • 나눈 결과의 나머지를 기록한다.
  • 몫이 0이 될 때까지 1과 2의 과정을 반복한다.
  • 기록한 나머지를 역순으로 배열한다. ← 새로운 진법의 수
  • ex) 10 : 10/2 = 5(0) → 5/2 = 2(1) → 2/2 = 1(0) → 1/2 = 0(1) ⇒ 0101을 역순으로하면 1010
void  convertToRadix(int number, int radix, char[] d) {
int count = 0; // 변환 후의 자릿수
String digitChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

do {
d[count++] = digitChars.charAt(number % radix); // radix로 나눈 나머지를 저장
number /= radix; //몫저장
} while (number != 0);

// 역순정렬
for (int i = 0; i < digits / 2; i++) {
char temp = d[i];
d[i] = d[count- i - 1];
d[count- i - 1] = temp;
}

방법 2. 대응 표를 사용

💡
주로 10진수 ↔ 16진수 변환 시 사용하며, 10진수 값에 대응하는 16진수 값을 표로 만들어 변환한다.

728x90

'Algorithm' 카테고리의 다른 글

시간 복잡도  (0) 2024.04.17
검색  (0) 2024.04.17
소수  (0) 2024.04.17
배열 알고리즘  (0) 2024.04.15
순서도  (0) 2024.04.01