※ C / C++을 이미 알고 있으나 개인적인 공부를 위해 포스팅 하는 글이므로
C++에 대한 구체적인 정보를 담고 있지 않습니다.
▶ 정수
int main()
{
int hp = 100; // 어셈블리에서 .data영역
int mp; // 어셈블리에서 .bss영역
return 0;
}
#include <iostream>
using namespace std;
int main()
{
char a; // 1바이트 (-128 ~ 127)
short b; // 2바이트 (-32768 ~ 32767)
int c; // 4바이트 (-21.4억 ~ 21.4억)
__int64 d; //(long long) 8바이트 (경을 넘어감... 샐줄모르겠음ㅋㅋ)
// unsigned를 붙히면 음수범위를 양수범위로 사용할 수 있다.
// 0부터~~
// 일반 변수는 signed키워드가 생략되어있는거다
}
ㆍ 참고하자면 다 초기화가 안되있으므로 bss영역에 들어가겠다.
※ 어셈블리를 공부하고 온 후에 프로그래머 계산기를 돌려서 바이트 별로 확인해 보니 범위를 확인할 수 있겠다.
▶ 범위와 관련된 이야기
#include <iostream>
using namespace std;
int main()
{
unsigned short ub;
ub = 0;
ub = ub - 1;
cout << ub << endl;
b = 32767;
b = b + 1;
cout<< b << endl;
}
ㆍ위 코드의 연산을 보면 범위를 벗어나는 연산을 테스트 해보고 있다.
ㆍ 어셈블리에서 배웠던 것 처럼 프로 그래머 계산기를 돌려봤다. 위 계산기에 나온 표기와 결과값이 short의 범위다.
ㆍ 여기에 1을 더하면 논리연산이 들어가게된다!
ㆍ 해당 값이 나오는 이유이다. unsigned도 비슷한 이유다!
'C++프로그래밍 > C 와 C++ 기초실습' 카테고리의 다른 글
문자와 문자열 (유니코드) (2) | 2024.09.15 |
---|---|
bool과 부동소수점 (1) | 2024.09.15 |
컴파일 과정과 전처리기 (0) | 2023.10.09 |
변수와 상수 영역과 Lifecycle (0) | 2023.10.09 |
상수 (1) | 2023.10.09 |