데이터형식의 이해 |
구분 |
데이터 형식 |
크기 |
값의 범위 |
정수 |
byte |
1 |
0~255 |
sbyte |
1 |
-128~127 |
|
short |
2 |
-32,768~32,767 |
|
ushort |
2 |
0~65535 |
|
int |
4 |
-2,147,483,648~2,147,483,647 |
|
uint |
4 |
0~4,294,967,295 |
|
long |
8 |
-922337203685477508~922,337,203,685,477,507 |
|
ulong |
8 |
0~18,446,744,073,709,551,615 |
|
실수 |
float |
4 |
-3.402823e38~3.402823e38 |
double |
8 |
-1.79769313486232e308~1.79769313486232e308 |
|
decimal |
16 |
±1.0x10e-28~±7.9x10e28 |
|
문자 |
char |
2 |
|
문자열 |
string |
|
|
논리 |
bool |
1 |
true, false |
객체 |
object |
|
위의 표를 보고 이해하면 아 나는 변수를 좀 안다라고 말하셔도 됩니다.
정수 데이터형식 |
우선 정수를 보면 위에서 배웠던 int가 보입니다. 여기서 다들 눈치 채셨겠지만
byte a;
sbyte a;
이렇게 변수를 선언하실수도 있습니다.
차이점은 변수의 형식과 크기입니다.
우선 정수형부터 살펴보겠습니다.
byte의 값의 범위를 보면 0~255으로 되어있습니다.
따라서, byte a = 255;와 같이 선언하면 들어가지만
byte a = 256;과 같이 벗어나는 값을 입력하면 아래와 같은 에러가 뜨게됩니다.
그러므로 데이터형은 정해진 범위만큼의 값을 입력(대입)해야 합니다.
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- byte a = 255;
- sbyte b = -128;
- short c = 32767;
- ushort d = 65535;
- int e = 2147483647;
- uint f = 4294967295;
- long g = 922337203685477507;
- ulong h = 18446744073709551615;
- Console.WriteLine("a=",a);
- Console.WriteLine("b=",b);
- Console.WriteLine("c=",c);
- Console.WriteLine("d=",d);
- Console.WriteLine("e=",e);
- Console.WriteLine("f=",f);
- Console.WriteLine("g=",g);
- Console.WriteLine("h=",h);
- }
- }
- }
상수 데이터 형식 |
실수형도 정수형과 선언하는 방식은 동일합니다.
단, float형은 리터럴값의 끝에 f를 붙이고
double형은 리터럴값의 끝에 m을 붙여야 합니다.
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- float a = 3.40282338f;
- double b = 1.79769313486232308;
- decimal c = .1028m;
- Console.WriteLine("a=, b=, c=", a, b, c);
- }
- }
- }
문자, 문자열 데이터 형식 |
char형은 '가', '1', 'a'와 같이 한 문자만 들어갈 수 있습니다.
리터럴을 넣을때는 쿼터( ' )로 감싸줘야 합니다.
String 형은 긴문장을 넣을 수 있습니다.
리터럴형을 넣을때는 더블쿼터(")로 감싸줘야 합니다.
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- char a = 'h';
- char b = '1';
- char c = '안';
- string d = "녕하세요";
- Console.WriteLine("", a, b,c,d);
- }
- }
- }
논리 데이터 형식 |
변수값에 true(1), false(0)만을 넣습니다.
1bit라는 저렴한 공간을 자랑합니다 ^-^
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- bool a = true;
- bool b = false;
- Console.WriteLine("a=,\nb",a,b);
- }
- }
- }
객체 형식 |
이건 다들어갑니다 ...
정수형, 실수형,불리언, 문자형, 문자열형 모오오옹땅~
이건뭔데 이제까지 배운 변수를 허무하게 만드냐?라고 물어보시는분. 앞서 말했듯이 효율성이 좀 떨어집니다. 따라서 쓸모없지는 않아요~
이 부분에 대해서는 상속에서 좀 더 자세히 다루겠습니다.
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- object a = 18446744073709551615;
- object b = 12.3456789101112;
- object c = false;
- object d = "hellow world";
- Console.WriteLine("a=, b=, c=, d=", a, b, c, d);
- }
- }
- }