프로그래밍 이란?
적절한 데이터를 저장하고 가공 / 데이터 + 로직
데이터에는
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")
'c++' 카테고리의 다른 글
C++ 개인 필기(6) 다중 포인터 및 배열 (2) | 2024.01.25 |
---|---|
C++ 개인 필기(5) 포인터 및 참조 (0) | 2024.01.24 |
C++ 개인 필기(4) 포인터 (0) | 2024.01.22 |
C++ 개인 필기(3) 반복문 및 스택 (0) | 2024.01.19 |
C++ 개인 필기(2) 비트 및 캐스트 (0) | 2024.01.17 |