본문 바로가기
C#/C# 일반 & Basic (General & Basic)

C# 프로그래머 되기 데이터 형식 바꾸는 방법 배워보기

by ★√★ 2021. 2. 24.

안녕하세요, 오늘 Posting할 사항은, C# 의 여러가지 데이터 형식을 바꿔보는 방법에 관한 내용입니다. 하나 하나 설명해 드리겠습니다. 

 

 

1. C#의 데이터 Type

: 데이터 Type에 대한 내용은 이전 포스팅에서도 다뤘습니다. 이 부분은 이전 포스팅을 보고 오시면 더 이해하시는데 도움이 되실 거 같습니다. 관련 링크는 아래와 같습니다.

 

 

 

C# 프로그래머 되기 변수 상수 그리고 데이터 형식을 이해하자

안녕하세요, Davey 입니다. 오늘 Posting할 사항은, C# 코딩을 하기 위해서 배워야할 기초적인 사항 중에, 변수와 데이터 형식에 대한, 내용입니다. 그럼 아래와 같이 하나 하나 차분히 설명해 드리도

davey.tistory.com

1) 숫자 데이터 형식 

   - 정수 계열 형식 

   - 부동수수 계열 

   - 소수 계열 

 

 2) 문자 형식과 문자로 이뤄어진 문자열 형식

 3) 논리 형식

 4) object 형식

 

 

2. 데이터 형식 변환 방식

 

  1) 숫자끼리의 변환 방식

   예제) sbyte <-> int Type

 

   - 코드 내용은 아래와 같습니다. 글고 그 코드 내용과 더불어, Output 창과 더불어 설명해드리도록 하겠습니다. 

 =================================================

 

namespace ConsoleApp1 
{ 
    class Program 
    { 
        static void Main(string[] args) 

        { 

            int a = 300;  // int Type으로 a를 선언했고, 그 a 라는 변수에 데이터 300을 집어넣은 것입니다.
            int a1 = 128;  // int Type으로 a를 선언했고, 그 a1 라는 변수에 데이터 128을 집어넣은 것입니다.

            sbyte b = 127;  // sbyte Type으로 b를 선언했고, 그 b 라는 변수에 데이터 127을 집어넣은 것입니다.
             
            int d = (int)b;  // sbyte Type b를 int Type으로 변환을 하고, 변수 d에 다가 넣었습니다.

            Console.WriteLine(d);   // 변수 d 의 값을 콘솔창에 출력합니다.

            // sbyte c = 128; 

            sbyte f = (sbyte)a1; // int Type a1을 sbyte Type으로 변환을 하고, 변수 f에 다가 넣었습니다.

            Console.WriteLine(f); // 변수 f 의 값을 콘솔창에 출력합니다.

            Console.ReadLine(); // 콘솔창을 Enter key가 누르기 전까지 정지 시켜줍니다.

        } 
    } 
}

 

=================================================

 

결과창은 아래와 같습니다. 하지만 여기에서 의문점이 드는게, 분명이 a1의 데이터는 128인데, 앞에 마이너스가 붙어서 -128로 output이 되었다는 거죠. 이런 현상을 소위 오버 플로우가 발생했다고 합니다. 즉, sbyte가 포함할 수 있는 숫자는 127까지 밖에 안되며, 그 이상은 오버플로우 현상으로 인해, 마이너스가 발생하게 됩니다. 

 

 한가지 팁을 드리자면, Visual Studio에서도 이 부분에 대해서 검출을 해줍니다. 제가 위 화면에서 주석처리한 sbyte c = 128; 이 부분을 주석 해제를 하면 아래와 같이 빨간색 라인이 그려지면서 이상있음을 알려줍니다. 

 

  

 

  2) 숫자와 문자와의 변환 방식

- 한 예제로, int <-> string의 변환 과정을 가지고 설명해 드리겠습니다. 가장 많이 쓰이는 사항입니다. 

  코드는 아래와 같습니다. 

 

=================================================

 

namespace ConsoleApp1 
{ 
    class Program 
    { 
        static void Main(string[] args) 

        { 

            int a = 300;  // int Type으로 a를 선언했고, 그 a 라는 변수에 데이터 300을 집어넣은 것입니다.
            string b = "128";  // string Type으로 b를 선언했고, 그 b 라는 변수에 데이터 "128"을 집어넣은 것입니다.

            string c = a.ToString();  // int Type a를 string type으로 변환 후 변수 c에 넣은 것입니다.


            int d = int.Parse(b); // string Type a를 int type으로 변환 후 변수 d에 넣은 것입니다. (방법 1)



            int f = Convert.ToInt32(b); // string Type a를 int32 type으로 변환 후 변수 f에 넣은 것입니다. (방법 2)
                         
            Console.WriteLine(c); // 변수 c 의 값을 콘솔창에 출력합니다.

            Console.WriteLine(d);  // 변수 c 의 값을 콘솔창에 출력합니다.

            Console.WriteLine(f);  // 변수 c 의 값을 콘솔창에 출력합니다.

            Console.ReadLine(); 

        } 
    } 
}

 

=================================================

 

결과창은 아래와 같습니다. 여기에서, 주목해야 할 부분은 string에서 int로 바뀔 때는, 방법 1, 2를 쓰셔도 무방하다는 겁니다. 그리고, int에서 string으로 바뀔때는, 앞에 type을 써주는게 아닌, ToString() 이라는 메소드를 써줘야 된다는 거죠.

 

 

 

참조하시라고, 데이터 형식 및 그 형식이 담을 수 있는 크기 및 범위에 대해서 아래와 같이 정리하였습니다. 

 

이상입니다. 이번 포스팅은 데이터 형식 바꾸는 방법에 대해서 정리를 하였습니다. 조금이나 도움이 되셨으면 좋겠네요. 모두가 C# 프로그래머가 되는 그날 까지 화이팅입니다.

 

 

[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다. 검토 후 수정 및 삭제 조치 하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.]

728x90

댓글


// 내부링크를 현재창으로 열기 // Open internal links in same tab