안녕하세요, 오늘 Posting할 사항은, C# 의 여러가지 데이터 형식을 바꿔보는 방법에 관한 내용입니다. 하나 하나 설명해 드리겠습니다.
1. C#의 데이터 Type
: 데이터 Type에 대한 내용은 이전 포스팅에서도 다뤘습니다. 이 부분은 이전 포스팅을 보고 오시면 더 이해하시는데 도움이 되실 거 같습니다. 관련 링크는 아래와 같습니다.
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 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.]
'C# > C# 일반 & Basic (General & Basic)' 카테고리의 다른 글
C# 프로그래머 되기 반복문 For문, Foreach문 Do While & While 문 (0) | 2021.03.03 |
---|---|
C# 프로그래머 되기 var 변수 선언 및 공용 형식 시스템(CTS) (0) | 2021.03.03 |
C# 프로그래머 되기 Visual Studio 2015에서 Tuple 기능 지원하는 C# 7.1 을 쓸 수 있는 방법 (1) | 2021.02.24 |
C# 프로그래머 되기 변수 상수 그리고 데이터 형식을 이해하자 (0) | 2021.02.23 |
C# 프로그래머 되기 Visual Studio (비주얼 스튜디어) 실행 시 평가판이라고 뜨면서 실행이 되지 않을 때 해결 방법 (0) | 2021.02.20 |
댓글