휘발되기 전에 휘갈김
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
기초 데이터 타입 4대 천왕
램 메모리 내에서 임대계약서 - 쓰기 - 읽기
int hp;
임대계약 후, 바구니 형성, 이제 값을 할당 가능.
int hp;
hp = 1;
값 할당.
console.WriteLine(hp);
바구니 안의 값을 읽어오기.
int hp = 100;
임대계약서 쓰자마자 데이터 할당 동시에 해주기.
C는 여러 다양한 숫자 타입들 중에서 변수의 용도에 걸맞는 적절한 타입을 골라줄 수 있다. 메모리를 아껴야하는 특수한 케이스에 char (-128 ~ 127)의 선택도 가능하다는 것이다.
그러나 가장 일반적으로 쓰이는 int타입은 약 -26억부터 26억까지로 range가 충분히 거대하다. 따라서 아주 극단적인 상황이 아닌 이상은 int타입을 사용한다.
2진법은 아래 2가지 숫자로 표현한다. (binary)
0 1
2진법은 0b를 앞에 붙여서 표현한다.
e.g. 0b00 0b01 0b10 ob11
16진법은 아래의 16가지 숫자로 표현한다. (Hexadecimal)
0 1 2 3 4 5 6 7 8 9 A B C D E F
16진법은 0x를 앞에 붙여서 표현한다.
e.g. 0x12FFB2
hp = 100;
hp = 0x64;
hp = 0b01100100;
위 세가지 값은 각각 10, 2, 16진법으로 다르게 표현되기만 했을 뿐 내용은 완전히 같다.
1비트가 8개가 모인 상태를 1바이트(Byte)라고 표현한다.
1바이트는 8개의 전구(켬/끔)을 가진다.
즉 2의 8승을 표현할 수 있다.
2의 보수를 통해 음수도 표현할 수 있다.
보수를 사용하는 타입을 signed라고 한다. signed느냐 unsigned느냐에 따라서 할당 가능한 숫자의 range가 다르다.
unsigned는 양수만 표현하므로 양수의 범위가 signed에 비해 두 배임을 알 수 있다.
컴퓨터는 데이터를 2진법 상태로 저장하고 있다.
속도같은 데이터를 표현할 때는
float a;
a = 3.5f;
f를 붙여주어야만 float임을 인식한다.
3.54325642356234234654f
메모리 공간은 유한하기에 어느 정도 근사값으로 컴퓨터가 저장하게 된다.
값이 커지면 커질 수록 데이터가 정확히 일치하지 않게 저장하고 버그의 원인이 될 수 있음을 명심한다.
그래서 float를 사용하지 않는 룰을 공유하는 경우도 있다.
double이라는 데이터 타입도 있으며, 소수점을 표현한다.
double은 할당시 값 뒤에 f를 붙일 필요가 없다.
double b;
b = 3.5;
double이라는 이름인 이유?
float은 4바이트, 네칸인데 비해 double은 8바이트 메모리 공간을 가지기 때문에 더 정밀하게 저장이 가능하다. 그러나 일반적인 경우 float로 충분히 커버가 된다.