UE5

[C++] 강의 정리(프로그래밍 개론 / 변수 기초 / 정수의 원리

wny0320 2024. 7. 8. 13:32

해당 내용은 다음 강의를 정리한 내용입니다.

 

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

Rookiss | 어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘, STL, 게임 수학, Windows API, 게임 서버 입문으로 이어지는 알찬 커리큘럼으로

www.inflearn.com

 

프로그래밍 개론

CPU

  • 가장 핵심이 되는 부품
  • 모든 연산을 담당

RAM

  • 데이터 저장소
  • 휘발성

HDD/SSD

  • 반 영구적 기억장치
  • RAM 보조

보조 기억장치 → RAM으로 해당 파일 적재해서 사용

메모리 구조 설명

https://zangzangs.tistory.com/107

일정 명령어 규칙에 따라 이진코드를 실행 → 명령어 집합 이야기

만든 코드가 번역이 되는 것 = 컴파일

 

변수 기초

데이터와 CPU의 협력으로 데이터를 가공해서 나타내는 것이 게임

메모리에는 각각 주소값이 존재함

  • 어셈블리 언어가 아닌 경우에는 자동으로 메모리 주소를 할당해주기 때문에 레지스터의 주소값을 개발자가 특별한 경우가 아니라면 알 필요가 없음

정수 변수들의 데이터 크기와 변수 할당법

https://learn.microsoft.com/ko-kr/cpp/cpp/data-type-ranges?view=msvc-170

C++에서 main 함수는 메인 코드가 돌아가는 부분을 의미

하드 코딩을 안하기 위한 기초

#include<iostream>
using namespace std;

int hp;
int maxHp;

int main()
{
	maxHp = 200;
	hp = maxHp;
	// 해당 부분이 변수가 아닌 정수값으로 다시 할당해준다면
	// 이후 maxHp 변수값의 수정에 따라 다시 값을 할당해줘야함
	// 이것이 하드 코딩
	cout << hp;
}

정수의 원리

윈도우 자체 계산기에 2진 계산기가 있다

크기는 2^8이지만 음수의 값도 표현하기 위해 제일 큰 자릿수는 양수 음수를 표현한다

2의 보수법 사용

모든 비트를 반대로 한 후 + 1

#include<iostream>
using namespace std;

int hp;
short mp;

int main()
{
	hp = 306189112;
	mp = hp;
	cout<<mp;
	// 출력값 4920
}

int 값이 더 작은 사이즈인 short로 보냈기 때문에 2바이트 크기보다 큰 부분의 비트들은 사라져 4920이라는 값이 나타나게 됨

  • C#에서는 명시적 변환을 사용해야하지만 C++은 기본적으로는 암시적 변환이 그냥 되므로 조심해야함

HEX - 16진법

DEC - 10진법

OCT - 8진법

BIN - 2진법

16진법과 2진법이 서로 변환이 편하기 때문에 16진법을 사용

코드 내에서도 다음과 같이 사용 가능

hp = 0b1100; // 0b 2진법으로 나타냄
hp = 0xF; // 0x 16진법으로 나타냄

덧셈이나 뺄셈시 오버/언더 플로우를 조심해야 한다는 것을 간단히 언급

'UE5' 카테고리의 다른 글

단축키와 레이아웃 설명  (0) 2023.01.15