참고 영상: 어소트락 게임아카데이 c++ 무료강의 https://youtu.be/tRIOg6pox9U
변수를 선언하려면 앞에 자료형을 지정해주어야 한다.
//value; (x)
//int value; (o)
자료형마다 차지하는 메모리 byte의 크기가 다르기 때문에,
내가 사용할 변수의 표현 범위가 이정도면 충분하겠다 싶은 것으로 자료형을 선택해주어야 한다.
*정수형: char(1byte), short(4byte), int(4byte), long(4byte), long long(8byte)
*실수형: float(4byte), duble(8byte)
1byte = 8bit 로 이루어져있다. 각 bit는 0, 1을 저장한다.
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
위와 같이 0과 1이 bit 한 칸마다 저장되므로, 1byte는 2^8=256가지의 가지수를 표현할 수 있다.
case 1) 양의 범위만 표현할 수 있는 정수형 변수
음의 범위를 포함하지 않는 자료형 앞에는 unsigned를 붙여준다.
ex) unsigned int value;
0~255 범위의 정수를 표현할 수 있다.
이 범위를 벗어나게되면 오버플로우(overflow) 혹은 언더플로우(underflow)가 발생한다.
int main(){
//unsigned int의 표현 범위 : 0~255
unsigned int num = -1; //언더플로우 발생
unsigned int num = 256;//오버플로우 발생
return 0;
}
case 2) 양, 음의 범위 모두 표현하는 정수형 변수
자료형 앞에 unsigned를 붙이지 않으면 양, 음의 부호를 모두 표현하는 변수이다.
ex )int value;
가짓수가 256가지인 것은 동일하므로, -128~-1(음의 범위, 128가지), 0~127(양의 범위, 128가지)
즉, -128~127범위의 수를 표현할 수 있다.
이 또한 범위를 벗어나게되면 오버플로우(overflow) 혹은 언더플로우(underflow)가 발생한다.
//언더플로우, 오버플로우 관련해서는 나중에 따로 정리해야쥐
int main(){
//signed int의 표현 범위 : -128~127
signed int num = -129; //언더플로우 발생
signed int num = 128; //오버플로우 발생
//여기서 signed int 는 int와 같음. 보통 signed를 쓰지 않고 생략한다.
return 0;
}
##공부 범위 요약 코드##
int main()
{
//자료형 선택하는 이유: 내가 쓸 변수의 표현 범위가 이정도면 충분하겠다 싶은 것으로 선택
int i = 0;//정수형 변수 i는 정수를 표현하는데 쓰이겠구나
//int: 자료형(역할마다 이름이 정해져있음), 메모리 공간에 이름 부여, 실체가 없음.
// 정수형(byte): char(1), short(2), int(4), long(4), long long(8) ex)1,100,1000, ..
// 실수형(byte): float(4), double(8) ex)3.141592...
//i: 변수명(사용자 임의대로 설정)
unsigned char c; //unsigned : 양수 범위만 취급할 것이다, 11111111(2)=255(10)
c=0;//1byte 양의 정수만 표현 가능한 변수, 0~255
c = 255;
c = 256;//범위 초과, overflow 발생
c = -1; //범위 초과, underflow 발생
//양수에 대응하는 음수 빨리 찾는 법: 2의 보수법 -> 양수 비트 반전시킨 다음 1 더하기
signed char d;//1vyte 양, 음의 정수 표현 가능, -128~127, 11111111(2) =-1(10)
//8bit중 가장 첫번째 칸 bit 는 부호비트.
return 0;
}
//unsigned vs signed char-> 11111111을 각각 255, -1로 다르게 받아들임
//signed일때만 최상위 비트가 부호비트 역할을 하기 때문이다.
//8bit = 1byte
//1024 byte=1KB->MB->GB->TB(앞 단위의 2^10배 만큼 증가)
//1bit-> 0과 1 표현 가능 즉, 가능한 경우의 수 = 2^(bit 수), 1byte의 경우의 수=2^8=256
//256가지로 표현할 수 있는 수의 범위
//양수 범위만 취급: 0~255까지 표
'c++' 카테고리의 다른 글
2일차(2023/02/18)-연산자 (0) | 2023.02.18 |
---|