[C#] 데이터 타입
데이터 타입에 대해 알아보겠습니다.
1. 정수 형식
C# 형식 / 키워드 | 범위 | 크기 | .NET 형식 |
sbyte | -128 ~ 127 | 부호 있는 8비트 정수 | System.SByte |
byte | 0 ~ 255 | 부호 없는 8비트 정수 | System.Byte |
short | –32,768 ~ 32,767 | 부호 있는 16비트 정수 | System.Int16 |
ushort | 0 ~ 65,535 | 부호 없는 16비트 정수 | System.UInt16 |
int | –2,147,483,648 ~ 2,147,483,647 | 부호 있는 32비트 정수 | System.Int32 |
uint | 0 ~ 4,294,967,295 | 부호 없는 32비트 정수 | System.UInt32 |
long | –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 부호 있는 64비트 정수 | System.Int64 |
ulong | 0 ~ 18,446,744,073,709,551,615 | 부호 없는 64비트 정수 | System.UInt64 |
다음과 같이 사용할 수 있습니다.
int num = 1234;
정수 리터럴은 10진수, 16진수, 2진 리터럴로 다음과 같이 지정할 수 있습니다.
(리터럴 : 변하지 않는 데이터)
var decimalLiteral = 42;
var hexLiteral = 0x2A;
var binaryLiteral = 0b_0010_1010;
2. 부동 소수점 숫자 형식
C# 형식 / 키워드 | 근사 범위 | 전체 자릿수 | .NET 형식 |
float | ±1.5E−45 ~ ±3.4E38 | ~6-9개 자릿수 | System.Single |
double | ±5.0E−324 ~ ±1.7E308 | ~15-17개 자릿수 | System.Double |
decimal | ±1.0E-28 ~ ±7.9228E28 | 28-29개의 자릿수 | System.Decimal |
다음과 같이 사용할 수 있습니다.
double dbNum = 12.34;
부동 소수점 리터럴은 다음과 같이 지정할 수 있습니다.
d 또는 D 접미사는 리터럴을 double로 변환
f 또는 F 접미사는 리터럴을 float로 변환
m 또는 M 접미사는 리터럴 decimal로 변환
double dbNum = 12.34d;
float fNum = 12.34f;
decimal fNum = 12.34m;
3. char 형식
형식 | 범위 | 크기 | .NET형식 |
char | U+0000~U+FFFF | 유니코드 16비트 문자 | System.Char |
4. enum 형식
열거형 데이터 타입으로 상수 집합으로 구성이 됩니다.
이렇게 정의 할 수 있습니다.
enum Day {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
Sun가 0으로 시작되어, Mon에는 1, Tue에는 2와 같은 식으로 데이터가 정의됩니다.
그리고 이런 식으로 사용할 수 있습니다.
int x = (int)Day.Sat;
int형에 데이터를 넣기 이해서는 명시적 캐스트가 필요합니다.
5. bool 형식
부울 값인 true / false를 저정할 변수를 선언하는데 사용됩니다.
다음과 같이 사용할 수 있습니다.
bool bCheck = true;
6. Nullable 형식
기본적으로 값형식(int형 등)들은 null값을 가질 수 없습니다. 하지만 null값을 가지기 위해서는 nullable형식으로 만들면 됩니다.
값형식에 ?를 붙이거나, Nullable<int>로 null값을 가질 수 있는 데이터를 만들 수 있다.
다음과 같이 사용합니다.
int? num1 = null
Nullable<int> num2= null;