프로그램에서 우리가 보통 많이 사용하는 진법은 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진법으로 바로 변환도 가능합니다.
'프로그래밍 > C#' 카테고리의 다른 글
[C#] string 과 StringBuilder 사용 (1) | 2015.03.31 |
---|---|
[C#] 박싱 과 언박싱 (Boxing & UnBoxing) (0) | 2015.03.30 |
[C#] 제네릭 ( Generics ) (1) | 2015.03.26 |
[C#] 해시테이블 vs 딕셔너리 ( hashtable vs. dictionary ) (10) | 2015.03.25 |
[C#] 리플렉션 ( Reflection ) (1) | 2015.03.24 |