c++

C++ 개인 필기(1) 데이터

Voitcon 2024. 1. 16. 18:40

프로그래밍 이란? 

적절한 데이터를 저장하고 가공 / 데이터 + 로직

데이터에는 

rodata 영역 -> readonly data

data 영역 -> 0이 아닌 초기화 값이 있을 경우

bss 영역 -> 초기 값이 0이거나 초기값이 없는 변수일 경우

char -> 1바이트, short -> 2바이트 int -> 4바이트 , <언리얼엔진 경우 int32> __int64 -> 8바이트

1Bit -- 최소 단위 , 8비트 -> 1바이트

자료형별 숫자 범위

char (-128 ~ 127) , short(-32768 ~ 32767) , int (-21.4억 ~ 21.4억)

콘솔/모바일 게임 메모리가 늘 부족하여 바이트 단위로 관리가 필수

예) 온라인 게임 4만명이 플레이 할시에 4바이트 * 4만명 데이터

정수 오버 플로우, 정수 언더 플로우 -> 범위 초과시 생기는 오류

char 의 경우 128을 입력할시에 정수 오버 플로우로 -127이 저장되는 현상이 발생함

boolean -> 1,0을 가지는 1바이트 정수 어셈블리에는 bool이라는 것이 없다.

연산의 최소 단위는 1바이트이다.

 

실수의 경우 프로그래밍에서는 실수값은 "근사값"이라 (==를 되도록 사용하지 말자)

수가 커질수록 오차범위가 커진다!

문자

Char -> 알파벳 / 숫자 문자 / wchar_t 유니코드

아스키 코드 : 숫자와 알파멧을 매핑함 (1,2,3,4,a,b,c,d,) 97=a

유니코드 : 전세계 모든 문자에 대해 유일코드 매핑, 한국/중국어 = 가장많은 번호

UTF8 : 알파벳, 숫자 1바이트 / 유럽문자 2바이트 / 한글, 한자 3바이트

UTF16: 대부분 문자 2바이트, 고대문자 4바이트

문자열: 문자들이 열을 지어서 모여있는것 (정수 1~8바이트 고정길이)

문자열의 끝은 NULL(0) ('\0")