자료형

댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
값을 담기 전에 어떤 종류의 값을 담을 것인지 정해야 하는데 이때 정하는 값의 종류를 자료형(data type) 이라고 합니다.
★ C#의 자료형은 크게 값 형식(value type), 참조 형식(reference type) 으로 나뉩니다.
| 갈래 | 변수가 담고 있는 것 | 해당하는 기본 형식 |
|---|---|---|
| 값 형식 | 값 자체 | 정수형,실수형과 char, bool |
| 참조 형식 | 값이 있는 곳 | string |
소수점이 없는 수를 담는 형식입니다. 레벨, 골드, 남은 총알 수 처럼 낱개로 세는 값이 여기에 해당됩니다.
ex)
int gold = 15000;
long totalDamage = 900000000L;
| 자료형 | 크기 | 범위 |
|---|---|---|
| byte | 1바이트 | 0 ~ 255 |
| sbyte | 1바이트 | -128 ~ 127 |
| short | 2바이트 | -32,768 ~ 32,767 |
| ushort | 2바이트 | 0 ~ 65,535 |
| int | 4바이트 | 약 -21억 ~ 21억 |
| uint | 4바이트 | 0 ~ 약 42억 |
| long | 8바이트 | 약 -922경 ~ 922경 |
| ulong | 8바이트 | 0 ~ 약 1,844경 |
※ uint 는 'unsigned int'로 부호가 없는 int 자료형을 이야기합니다.
소수점이 있는 수를 담는 형식입니다. 이동속도, 남은 시간 등 연속적인 값에 사용합니다.
ex)
float moveSpeed = 5.5f;
double distance = 12.75;
| 자료형 | 크기 | 대략의 유효 자릿수 | 주 용도 | | :--- | :--- | :--- | | float | 4바이트 | 6 ~ 9자리 | 게임 엔진의 좌표·속도·시간 | | double | 8바이트 | 15 ~ 17자리 | 일반적인 소수 계산 | | decimal | 16바이트 | 28 ~ 29자리 | 금액처럼 오차가 허용되지 않는 값 |
float 변수에 소수를 넣어 사용할 때에는 값 뒤에 f 를 붙여야 합니다.
ex) float a = 3.14f;
char는 문자 하나를 담는 형식이고string은 글자의 나열을 담는 형식입니다
ex)
char grade = 'A';
char initial = '김';
string playerName = "Jade";
string message = "던전에 입장했습니다.";
string empty = ""; // 글자가 없는 문자열
| 구분 | char | string |
|---|---|---|
| 담는 것 | 문자 하나 | 문자의 나열 |
| 표기 | 작은따옴표 'A' | 큰따옴표 "A" |
| 갈래 | 값 형식 | 참조 형식 |
| 길이 | 항상 1 | 0개 이상 |
문장 안에 변수의 값을 끼워 넣어야 할때 사용합니다.
ex)
string playerName = "Jade";
int level = 12;
string message = $"{playerName}님의 레벨은 {level}입니다."
// message에 담기는 값 : Jade님의 레벨은 12입니다.
bool은 참과 거짓 중 하나 를 담는 형식입니다.
ex)
bool isAlive = true;
bool hasKey = false;
서로 다른 자료형 사이에 값을 옮겨야 하는 상황에 사용합니다. 형변환에는 암시적 변환, 명시적 변환 그리고 변환 전용 도구가 있습니다.
float floatNumber = 25.877f;
// 정수형(int)로 바꿀때
Console.WriteLine((int)floatNumber); // 출력 : 25
// 반올림해서 정수형(int)로 바꿀때
Console.WriteLine(Convert.ToInt32(floatNumber)); // 출력 : 26
// 반올림 자릿수를 지정하고 싶을때
Console.WriteLine(Math.Round(floatNumber, 2)); // 출력 : 25.88
char symbol = 'C';
int newSymbol = symbol + 32;
Console.WriteLine(newSymbol); // 출력 : 99
Console.WriteLine((char)newSymbol); // 출력 : c
char 자료형에서 int 자료형으로 변환하는 경우에 숫자가 출력되는 이유 : 해당 문자가 뜻하는 고유한 아스키코드(ASCII)로 반환하기 때문입니다.
string text1 = "10";
string text2 = "20";
Console.WriteLine(text1 + text2); // 출력 : 1020
int a = int.Parse(text1);
int b = int.Parse(text2);
Console.WriteLine(a + b); // 출력 : 30
Parse( ) 는 string을 int로 변환시켜주는 함수이지만,실제 게임에 적용하기엔 위험한 코드이다. 이 내용은 추후에 배울 예정이다.
bit란, 컴퓨터가 다룰 수 있는 가장 작은 정보의 단위 -> 0 혹은 1 하나
1byte = 8 bit
※ int 자료형의 크기는 4byte 인데 컴퓨터에게 4byte씩 끊어서 읽게 하겠다 라는 의미이다.
CPU가 한번에 처리할 수 있는 데이터의 단위 32bit, 64bit 시스템의 차이를 만들어내는 핵심 개념
