C# 입문 - 1 (강의록): 타입

유키미아우·2024년 8월 12일
0

휘발되기 전에 휘갈김

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

기초 데이터 타입 4대 천왕

  • int 정수형 (-1, 0, 1, 2, 3)
  • float 실수형 (1.14)
  • string 문자열
  • bool 불리언 (true or false)

램 메모리 내에서 임대계약서 - 쓰기 - 읽기

int hp;

임대계약 후, 바구니 형성, 이제 값을 할당 가능.

int hp;
hp = 1;

값 할당.

console.WriteLine(hp);

바구니 안의 값을 읽어오기.

int hp = 100;

임대계약서 쓰자마자 데이터 할당 동시에 해주기.

C는 여러 다양한 숫자 타입들 중에서 변수의 용도에 걸맞는 적절한 타입을 골라줄 수 있다. 메모리를 아껴야하는 특수한 케이스에 char (-128 ~ 127)의 선택도 가능하다는 것이다.

그러나 가장 일반적으로 쓰이는 int타입은 약 -26억부터 26억까지로 range가 충분히 거대하다. 따라서 아주 극단적인 상황이 아닌 이상은 int타입을 사용한다.

2진법

2진법은 아래 2가지 숫자로 표현한다. (binary)
0 1

2진법은 0b를 앞에 붙여서 표현한다.
e.g. 0b00 0b01 0b10 ob11

16진법

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로 충분히 커버가 된다.

profile
능동적인 마음

0개의 댓글