hoony's web study

728x90
반응형

C#으로 RS 232 통신을 하면서 16진수로 변환해서 써야하는 일이 있어서 찾다보니
우연히 찾은 글입니다.
출처 : http://ispkorea.com/trackback/70

진수를 변환하기 위해서는 Convert 클래스만 아시면 됩니다.


 

일단 X진수에서 X진수로 변환하기 위해서는 10진수로 변환을 하셔야 합니다.


 

예를 들어 2진수를 16진수로 변환하기 위해서는 2진수 -> 10진수 -> 16진수 이렇게 되는거죠....


 

그럼 여기서 2진수 -> 10진수로 변환하기 위해서 Convert.ToInt32 메서드를 사용 하시면 되고 10진수 -> 16진수로 변환하기 위해서 Convert.ToString 메서드를 사용 하시면 됩니다.


 

1. 2진수를 10진수로 변환하는 법


 

Convert.ToInt32(string value, int fromBase)


 

첫번째 인자는 10진수로 변환 할 값입니다. 2진수를 10진수로 변환하기 위해서는 첫번째 인자에 "10101010" 이런식으로 2진수를 string 형으로 입력 하시면 됩니다.


 

두번째 인자는 "첫번째 인자가 몇 진수인가?" 를 나타내는 인자 입니다.

2진수니까 숫자 2를 입력하시면 됩니다.


 

예) 2진수 10101010 을 10진수로 변환

int result = Convert.ToInt32("10101010", 2);

Console.WriteLine(result); //170 입니다.


 

2. 10진수를 2진수로 변환하는 법...


 

Convert.ToString(int value, int toBase)


 

첫번째 인자는 2진수나 8진수, 16진수로 변환 할 10진수 값입니다.

두번째 인자는 "몇 진수로 변환?" 를 나타내는 인자 입니다.


 

예)10진수 170을 2진수로 변환

string result = Convert.ToString(170, 2);

Console.WriteLine(result); //10101010 입니다.



 

콘솔로 입력받아 진수를 변환하는 소스는 다음과 같습니다.

나머지 진수 변환은 응용해 보세요....^^;;


 

using System;

namespace ConsoleApplication1
{
 ///


 /// Class1에 대한 요약 설명입니다.
 ///

 class Class1
 {
  ///
  /// 해당 응용 프로그램의 주 진입점입니다.
  ///

  [STAThread]
  static void Main(string[] args)
  {
   Console.Write("2진수를 16진수로 변환 : ");
   
   // 2진수를 입력 받는다.
   string input2 = Console.ReadLine();

   // 2진수를 10진수로 변환
   int int2 = System.Convert.ToInt32(input2, 2);
   // 10진수를 16진수로 변환
   string output16 = System.Convert.ToString(int2, 16);

   Console.WriteLine("2진수 : " + input2 + " -> 16진수 : " + output16);




 

   Console.Write("16진수를 2진수로 변환 : ");
   
   // 16진수를 입력 받는다.
   string input16 = Console.ReadLine();

   // 16진수를 10진수로 변환
   int int16 = System.Convert.ToInt32(input16, 16);
   // 10진수를 2진수로 변환
   string output2 = System.Convert.ToString(int16, 2);

   Console.WriteLine("16진수 : " + input16 + " -> 2진수 : " + output2);

   
  }
 }

}
출처 : http://ispkorea.com/trackback/70

728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading