안녕하세요 "투명 나비" 입니다.
오늘은 C# 기초 : 첫번째!! 자료형(Data Type)에 대해서 알아보겠습니다
기본 자료형은 4가지(정수형, 실수형, 문자형, 불린형)가 있습니다.
처음은 정수형 기본 타입부터 알아보겠습니다.
기본 타입은 8가지가 있습니다
데이터 형식 | 크기 | 범위 | 설명 |
sbyte | 1 byte ( 8 bit) | -128 ~ 127 | 앞에 붙은 s는 signed의 약자 입니다 |
byte | 0 ~ 255 | ||
short | 2 byte (16 bit) | -32,768 ~ 32,767 | 앞에 붙은 u는 unsigned의 약자입니다 |
ushort | 0 ~ 65,535 | ||
int | 4 byte (32 bit) | -2,147,483,648 ~ 2,147,483,647 | |
uint | 0 ~ 4,297,967,295 | ||
long | 8 byte (64 bit) | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | |
ulong | 0 ~ 18,446,744,073,709,551,615 |
위의 표를 보시면 데이터 타입 앞에 s 또는 u가 있는데 이것들은 축약어(줄임말)입니다.
정수(소수점이 없는 수)를 나타내는 타입이 8가지나 있는 이유는 저장공간의 효율을 높이기 위해서입니다.
데이터 타입을 선언하면, 컴퓨터가 선언한 데이터 크기만큼의 저장공간(메모리)을 확보합니다.
예) 만약! 1학년이 총 200명이라는 것을 저장하고 싶은데, byte 가 아닌 short, int, long 타입으로 저장을 하게 된다면,
1~7byte 정도를 낭비하게 됩니다.
컴퓨터 또는 휴대폰의 저장공간(메모리)은 한계가 있기 때문에, 이점을 숙지하고, 적절한 데이터 타입을 사용하시길 바랍니다
또한, 데이터가 담을 수 있는 범위를 넘어서면 그 값을 담을 수 없다고 나오거나, 의도했던 값이 나오지 않습니다.
예)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour{
void Start(){
sbyte _sbyte = 127; // 변수 선언 및 값을 부여(추후설명)
Debug.Log($"첫번째 sbyte 값 : {_sbyte}"); //출력
_sbyte++; // _sbyte에 1을 더해준다(추후설명)
Debug.Log($"두번째 sbyte 값 : {_sbyte}"); //출력
_sbyte++; // _sbyte에 1을 더해준다(추후설명)
Debug.Log($"세번째 sbyte 값 : {_sbyte}"); //출력
}
}
결과)
첫번째 sbyte 값 : 127
두번째 sbyte 값 : -128
세번째 sbyte 값 : -127
위의 예제를 보면 127에 1을 더했는데, sbyte 데이터 타입의 범위를 벗어났기 때문에 128이 아닌 -128이 출력됩니다.
다음은 실수형 기본 타입입니다.
쉽게 설명하면 소수점을 나타낼 수 있는 자료형입니다.
기본 타입은 3가지가 있습니다
데이터 형식 | 크기 | 범위 | 설명 |
float | 4 byte (32 bit) | (+,-)1.5 x 10e-45 ~ (+,-)3.4 x 10e38 | 아래에서 설명 |
double | 8 byte (64 bit) | (+,-)5.0 x 10e-324 ~ (+,-)1.7 x 10e308 | |
decimal | 16 byte (128 bit) | (+,-)1.0 x 10e-28 ~ (+,-)7.9 x 10e28 |
float, double, decimal는 정밀도에서 차이가 난다.
float는 소수점 6자리까지 나타내고, double는 소수점 14자리 까지, decimal은 소수점 28자리 까지 나타낸다.
만약, float 값이 소수점 7까지 있고, double 값이 소수점 15까지 있으면, 각각 반올림하여 6자리 또는 14자리만
나타내지만, decimal은 반올림하지 않고 버린다.
또한, float와 decimal에 값을 넣어줄 때는 끝에, f 또는 m을 붙여야 한다.
예)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour{
void Start(){
float _float = 1.123456789123456789123456789123456789f;
double _double = 1.123456789123456789123456789123456789;
decimal _decimal = 1.123456789123456789123456789123456789m;
Debug.Log($"float 값 : {_float}");
Debug.Log($"double 값 : {_double}");
Debug.Log($"decimal 값 : {_decimal}");
}
}
결과)
float 값 : 1.123457
double 값 : 1.12345678912346
decimal 값 : 1.1234567891234567891234567891
다음은 문자형 기본 타입입니다.
기본 타입은 2가지가 있습니다
데이터 형식 | 크기 | 범위 | 설명 |
char | 유니코드 2 byte (16 bit) | U+0000 ~ U+FFFF | 문자를 담을 수 있다 |
string | 유니코드문자열 | 문자열 | 문자열을 담을 수 있다 |
char과 string의 차이점은 문자를 담을지 아니면 문자열을 담을지에 대한 차이입니다
값을 넣는 방법 또한 다릅니다.
char은 ' ' 사이에 문자 1개만 넣습니다. (만약 여러 개의 문자를 넣으면 에러 메시지가 나옵니다)
string은 " " 사이에 문자 여러 개를 넣어줍니다. (문자 1개만 넣어도 괜찮습니다)
예)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour{
void Start() {
char _char = 'b';
string _string = "Banana";
Debug.Log($"char 값 : {_char}");
Debug.Log($"string 값 : {_string}");
}
}
결과)
char 값 : b
string 값 : Banana
마지막으로 불린(boolean)형 기본 타입입니다.
기본 타입은 1가지만 있습니다
데이터 형식 | 크기 | 범위 | 설명 |
bool | 1 byte (4 bit) | true 또는 false | 아래에서 설명 |
불린형은 단 2가지 true(참) 또는 false(거짓) 값만 넣을 수 있습니다.
예)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour{
void Start(){
bool _bool01 = true;
bool _bool02 = false;
Debug.Log($"bool 01 값 : {_bool01}");
Debug.Log($"bool 02 값 : {_bool02}");
}
}
결과)
bool 01 값 : true
bool 02 값 : false
투명나비의 후기
처음으로 복습 겸 C# 자료형(Data type)에 대해서 포스팅하였습니다.
생각보다 오래 걸리긴 했지만 끝내고 나니 뭔가 뿌듯합니다ㅎㅎ
데이터 타입마다 언제 사용하면 좋은지에 대해 더욱 길게 쓰고 싶지만,
기초 후반에 배우는 내용과 함께 설명하도록 하겠습니다.
인터넷에서 여러 자료를 참고해서 제 입맛 데로 만들었기 때문에, 누락된 부분이나, 간략하게 설명한 부분도 있습니다.
만약 틀린 부분이나 추가해야 하는 부분이 있으면 알려주셨으면 좋겠습니다.
참고 : https://boxfoxs.tistory.com/231
'C# 코딩 기초' 카테고리의 다른 글
C# 기초 03.2 - 스택(Stack)과 힙(Heap) (0) | 2020.01.01 |
---|---|
C# 기초 03.1 - 박싱(Boxing)과 언박싱(UnBoxing) (0) | 2019.12.17 |
C# 기초 04 - 일반화 컬렉션(Generalization Collection) (0) | 2019.12.07 |
C# 기초 03 - 컬렉션(Collection) (0) | 2019.11.30 |
C# 기초 02 - 배열(Array) (1) | 2019.11.24 |