(10101101)173/C#2009. 3. 27. 23:19
1. 정수형
C# 형 .NET 형 Byte 제곱
sbyte SByte 1 -128 ~ 127 (부호있음) 2^8 -1
byte Byte  1 0 ~ 255 (부호없음)
short Int16 2 -32,768 ~ 32,767 (부호있음) / 2^16 - 1 2^16 - 1
ushort UInt16 2 0 ~ 65,535 (부호없음)
int Int32 4 -2,147,483,648 ~ 2,147,483,647 (부호있음) / 2^32 - 1 2^32 - 1
uint Uint32 4 0 ~ 4,294,967,295 (부호없음)
long Int64 8 -9,223,372,036,854,775,808 - 9,223,372,036,854,775,807 (부호있음) / 2^64-1 2^64 - 1
ulong UInt64 8 0 ~ 18,446,744,073,709,551,615 (부호없음)
[표 1. 정수형]
2. 실수형
C# 형 .NET 형 Byte
float Single 4 약 +/-1.5*10^-45 ~ 약 +/-3.4*10^38 / 유효 숫자 7개 / 32Bit의 부동 소숫점 숫자
double Double 8 약 +/-5.0*10^-324 ~ 약 +/-1.7*10^308 / 유요 숫자 15 ~ 16개 / 64Bit의 부동 소숫점 숫자
decimal Decimal 12 약 +/-1.0*10^28 ~ 약 +/- 7.9*10^28 / 유효 숫자 28개 / 96Bit의 부호있는 숫자
[표 2. 실수형]
 float과 double형은 IEEE 754 표준을 따릅니다. 반면 decimal은 가장 적음 범위의 숫자를 지원하지만 반올림 오류가 발생하지 않기 때문에  28자리까지 저장이 가능합니다.
float t1Float = 1.2;
float t2Float = 1.2f;
float t3Float = 1.2F;

double t1Double = 1.234;
double t2Double = 1.234d;
double t3Double = 1.234D;

decimal t1Decimal = 1.23456789m;
decimal t2Decimal = 1.23456789M;
float은 f나 F, double은 d나 D를 붙이거나 생략해도 되지만 decimal은 m, M을 붙여야 합니다.

3. 문자형
C# 형 .NET 형 Byte
char Char 2 16Bit의 Unicode문자 / U0000 ~ UFFFF(U + 숫자)
[표 3. 문자형]
char형에는 이스케이프 문자(Escape character)와 유니코드 시퀀스 입력이 가능합니다.

이스케이프 문자 유니코드 디코딩 기능
\' 0x0027 작은 따옴표
\" 0x0022 큰 따옴표
\\ 0x005C 백슬래시
\0 0x0000 NULL
\a 0x0007 경고
\b 0x0008 백스페이스
\f 0x000C 폼피드
\n 0x000A 개행(줄바꿈)
\r 0x000D 캐리지 리턴
\t 0x0009 수평탭(가로탭)
\v 0x000B 수직탭(새로탭)
\x \x0041 = "A" 가변 길이를 특징으로 하는 "\u"와 유사한 유니코드 이스케이프 시퀀스
\u \u0041 = "A" 유니코드 이스케이프 시퀀스
\U \Unnnnnnnn 서로게이트 쌍에 대한 유니코드 이스케이스 시퀀스
\r\n
캐리지 리턴 후 개행
[표 4. 이스케이프 문자, 유니코드]
string strTest = @"C:\Windows\font\arial.ttf";

이스케이프 문자는 파일에 위치 표현과 같은 곳에서는 사용이 부적절 하기 때문에 문자열 앞에 "@"를 붙여 이스케이프 문자를 무시할 수 있습니다. string형은 데이터 형식의 참조형식이기 때문에 다음에 이어 하도록 하겠습니다.

4. 논리형(Boolean)
C# 형 .NET 형 Byte
bool Boolean 1 true(참) 혹은 false(거짓)
[표 5. 논리형]
여기에 사용자 정의형 struct까지가 값 형식의 구조체형 데이터 타입이며 enum은 값 형식의 열거형으로 나뉩니다.
Posted by Special Alex