연습장

정수 본문

언리얼 개발자/C++

정수

도다람 2022. 7. 30. 21:31

주제: 정수


주석처리: Comment (Ctrl + K 누른 후 C) / UnComment(Ctrl + K 누른 후 U)

//이렇게 주석을 달 수 있다.

 

/*주석이

여러줄이면

이렇게 달 수 있다.

*/

 


변수 선언 방법 (귀찮지만 적절하게 잘 골라줘야 함)

① [타입][이름];

② [타입][이름] = [초기값];

char형 1바이트 (-128~127)
short형 2바이트 (-32,768~32,767)
int형 4바이트 (-21.4억~21.4억)
__int64형 / long long형 8바이트 (어마어마하게 큼)

 

 

signed / unsigned

변수 앞에는 항상 signed가 생략되어 있다.

unsigned char형 1바이트 (0~255)
unsigned short형 2바이트 (0~65,536)
unsigned int형 4바이트 (0~42.9억)
unsigned __int64형 / (unsigned long long형) 8바이트 (0~어마어마하게 큼)

 

참고) 이론적으로 양수만 존재할 수 있는 데이터는 unsigned를 사용하는게 맞을까? 코딩스타일에 따라 의견이 갈린다.

무조건 레벨이 음수라는 것은 말이 안된다. 차라리 그 자리에서 프로그램을 크래시 내서 버그를 빨리 찾는게 낫다.

VS

unsigned과 signed 사이의 변환 과정에 버그가 생길수도 있다.

 

 

귀찮은데 그냥 4바이트로 가면 안될까?

==> 콘솔/모바일게임에서는 조금이라도 메모리를 아끼는게 중요하다. 메모리가 늘 부족하다.

==> 온라인게임 => 4바이트*1만명 => 나비효과를 불러온다.

 


정수 오버플로우 / 정수 언더플로우

※ 범위를 신경쓰지 않으면 예상못한 버그가 발생할 수 있다.

#include <iostream>
using namespace std;

int main() {
	
    b = 32767;
    b = b + 1;
    
    cout << b << endl; // 출력: -32768 

}

'언리얼 개발자 > C++' 카테고리의 다른 글

비트 연산과 비트 플래그  (0) 2022.08.07
비교 연산과 논리 연산  (0) 2022.08.01
산술 연산(데이터 연산)  (0) 2022.07.31
문자와 문자열  (0) 2022.07.31
불리언과 실수  (0) 2022.07.30
Comments