C#에서 10진수에 해당하는 8진수 값을 구하려면 나눗셈과 나머지 연산을 활용하면 됩니다. 이 글에서는 변환 원리와 함께 전체 예제 코드를 단계별로 살펴보겠습니다.
변환 원리
10진수를 8진수로 바꾸는 기본 아이디어는 다음과 같습니다. 먼저 while 루프를 사용하여 10진수 값을 8로 나눈 나머지를 8진수용으로 준비한 배열에 차례대로 저장합니다. 즉, 각 자릿수에 해당하는 mod 8 값을 구하는 것입니다.
그다음에는 해당 수를 8로 나눈 몫을 다시 대입하고, 값이 0이 될 때까지 이 과정을 반복합니다.
while (dec != 0) {
oct[i] = dec % 8;
dec = dec / 8;
i++;
}
루프가 끝나면 배열에는 낮은 자릿수부터 순서대로 나머지가 저장되어 있으므로, 마지막에 배열을 역순으로 출력하면 올바른 8진수 결과를 얻을 수 있습니다.
전체 예제 코드
아래는 완성된 코드입니다. 여기서는 10진수 12를 8진수로 변환해 보겠습니다.
using System;
namespace Demo {
class Program {
static void Main(string[] args) {
int []oct = new int[50];
// 10진수
int dec = 12;
int i = 0;
while (dec != 0) {
oct[i] = dec % 8;
dec = dec / 8;
i++;
}
for (int j = i - 1; j >= 0; j--)
Console.Write(oct[j]);
Console.ReadKey();
}
}
}
실행 결과
위 코드를 실행하면 10진수 12의 8진수 표현인 14가 출력됩니다. 계산 과정을 살펴보면 12 ÷ 8 = 1 (나머지 4), 1 ÷ 8 = 0 (나머지 1)이 되고, 나머지를 역순으로 읽으면 14가 되는 것을 확인할 수 있습니다.