Log to grow

[C# 기초] 기본 자료형 (정수형, 실수형, 문자형, 논리형 등) 본문

PL/C#

[C# 기초] 기본 자료형 (정수형, 실수형, 문자형, 논리형 등)

kkkrrr 2020. 1. 6. 02:39

1. 기본 자료형

이 세상에 존재하는 모든 데이터는 '형식' 이라는 것이 필요하다. 예를 들어, 우리의 이름같은 경우는 문자들의 집합으로 이루어져 있으므로 '문자열' 형식이며, 나이는 정수이므로 '정수형', 키는 실수이므로 '실수형'의 형식이다. C#에서도 모든 데이터를 이러한 형식에 따라 구분하여 저장하고 사용하는데, 이를 구분하기 위해 필요한 것이 바로 자료형이다. 

 

 

2. 기본 자료형의 종류

자료형의 종류는 아래와 같이 5가지로 구분할 수 있다. 

 

종류 예시
정수형 int, byte, short 등
실수형 double, float 등
문자형 char, string
논리형 bool
기타 object

 

위 표에 표시한 예시 이외에도 C#에 존재하는 다른 자료형이 궁금하다면 아래 url에서 찾아보면 된다. 아래 url은 정수형 타입에 대한 페이지이며 실수형, 논리형 등 다른 종류 타입은 같은 카테고리의 다른 페이지에서 찾아볼 수 있다.

 

* 정수 숫자 형식 - C# 참조

https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/builtin-types/integral-numeric-types

 

 

이러한 다양한 자료형들을 상황에 맞게 선택하여 사용하게 된다. 위에서 예시로 들었던 이름, 나이, 키는 아래와 같이 해당하는 자료형을 선택하여 변수로 구현할 수 있다. 변수가 무엇인지 모르겠다면 아래 url에서 확인할 수 있다. 

 

string name = "john";
int age = 17;
float height = 165.0f;

 

* 변수

https://killu.tistory.com/22

 

3. 자료형을 구분해야 하는 이유

위 표를 보면 같은 정수형임에도 불구하고 여러 종류의 자료형이 존재하는 것을 알 수 있다. 예시에는 3종류만 표시해 놓았지만 위 url에서 총 8개의 정수형 자료형이 있음을 확인할 수 있다. 같은 정수형 타입인데도 여러 타입으로 구분해야 하는 이유가 있을까?

 

이는 효율적인 메모리 관리를 위해서이다. 예를 들어, short 타입의 경우 16비트의 정수 즉, -32,768~32,767 범위의 정수를 저장할 수 있다. 반면, long 타입의 경우 64비트의 정수 즉, –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 범위의 정수를 저장할 수 있다.

만약 15,000 이라는 정수를 저장하려고 한다면 short 타입으로도 충분하므로 long 타입을 사용할 경우 그만큼의 메모리를 낭비하게 되는 것이다. 하지만 short 타입 변수에 40,000의 값을 저장한다면 overflow가 발생하므로 이 경우에는 더 큰 타입인 int 혹은 long 을 사용해야하는 것이다.

 

long a = 15000; // 메모리 낭비
short b = 40000; // 오버플로우


결과적으로 같은 정수형일지라도 상황에 맞는 자료형을 선택해야 한다. 만약 변수에 담긴 값이 큰 값으로 변할 가능성이 있고 메모리가 충분할 경우 int, long 등 큰 자료형을 선택하는 것이 좋고, 변수에 담긴 값이 큰 값으로 변할 가능성이 없고 메모리 공간이 모자랄 경우 short, byte 등 작은 자료형을 선택하는 것이 메모리 측면에서 좋다.

 

Comments