해당 내용은 다음 강의를 정리한 내용입니다.
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
Rookiss | 어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘, STL, 게임 수학, Windows API, 게임 서버 입문으로 이어지는 알찬 커리큘럼으로
www.inflearn.com
프로그래밍 개론
CPU
- 가장 핵심이 되는 부품
- 모든 연산을 담당
RAM
- 데이터 저장소
- 휘발성
HDD/SSD
- 반 영구적 기억장치
- RAM 보조
보조 기억장치 → RAM으로 해당 파일 적재해서 사용
메모리 구조 설명
일정 명령어 규칙에 따라 이진코드를 실행 → 명령어 집합 이야기
만든 코드가 번역이 되는 것 = 컴파일
변수 기초
데이터와 CPU의 협력으로 데이터를 가공해서 나타내는 것이 게임
메모리에는 각각 주소값이 존재함
- 어셈블리 언어가 아닌 경우에는 자동으로 메모리 주소를 할당해주기 때문에 레지스터의 주소값을 개발자가 특별한 경우가 아니라면 알 필요가 없음
정수 변수들의 데이터 크기와 변수 할당법
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 |
---|