[C#] 진법 변환 ( 진수 변환 )

|

프로그램에서 우리가 보통 많이 사용하는 진법은 4가지정도 있습니다. 2,8,10,16 입니다.

여기에서 각각 진법간의 변환 방법에대해서 알아 보겠습니다.


우선 진법간의 변환은 10진법을 거쳐야만 합니다. 

즉 2진법에서 16진법으로 갈때는 바로 변환을 하지 못하고 2진법->10진법->16진법 식으로 변환과정을 거쳐야 합니다.


여기서 사용하는 클래스는 Convert 입니다. 

10진법으로 변환 : Convert.ToInt32(string value, int frombase) , frombae에 value의 진법

10진법에서 각 진법으로 변환 : Convert.Tostring(int value, int tobase)  , tobase에 변환하려는 진법


그럼 간단한 예제로 마무리 하겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//2,8,16진법을 10진법으로 변환
string binaryData = "1101";
string octalData = "15";
string hexData = "D";
 
int resultDecimalData = Convert.ToInt32(binaryData, 2);
Console.WriteLine(resultDecimalData); //13
 
resultDecimalData = Convert.ToInt32(octalData, 8);
Console.WriteLine(resultDecimalData);//13
 
resultDecimalData = Convert.ToInt32(hexData, 16);
Console.WriteLine(resultDecimalData);//13
 
 
//10진법을 2,8,16진법으로 변환
int decimalData = 13;
string resultBinaryData = Convert.ToString(decimalData, 2);
string resultOctData = Convert.ToString(decimalData, 8);
string resultHexData = Convert.ToString(decimalData, 16);
 
Console.WriteLine(resultBinaryData);//1101
Console.WriteLine(resultOctData);//15
Console.WriteLine(resultHexData);//d
 
 
//2진법을 16진법으로 변환
resultDecimalData = Convert.ToInt32(binaryData, 2); //2진법을 10진법으로
resultHexData = Convert.ToString(decimalData, 16); //10진법을 16진법으로
 
Console.WriteLine(resultHexData);//d
resultHexData = decimalData.ToString("X2"); //10진법을 16진법(2자릿수 대문자)으로
Console.WriteLine(resultHexData);//0D
cs

+decimalData.ToString("X2")으로도 16진법으로 바로 변환도 가능합니다. 


And