C++
[C++] 정수형 자료형
jeylee
2021. 7. 27. 10:55
int main()
{
// 1 바이트로 양수만 표현
// 256 가지 -> 0 ~ 255
unsigned char c = 0;
c = 0;
//c = 255;
c = -1;
// 1바이트로 양수, 음수 둘다 표현
// -128 ~ 127
char c1 = 0;
c1 = -1;
// 음의 정수 찾기(2의 보수법)
// 대응되는 양수의 부호를 반전 후, 1을 더한다.
return 0;
}
1byte의 char를 활용해 오버플로우와 언더플로우를 확인해 보았습니다.
= 특정 오버된값을 대입하면 그저 아래 8bit만 잘라 읽어 원치 않는 값을 가져다줍니다. 과거의 게임에서 캐릭터의 능력치나 아이템 갯수 에 255가 최대치 였던 이유가 1byte메모리를 사용하기 때문입니다.
-1은 1byte에 어떻게 있는가?
=양의 정수와 0이 1byte상에서 어떻게 있느지 알고 있습니다. 그래서 1에서 어떤 값을 더해야 0이 되는지 알고 있기 때문에 이를 연결하여 생각해 보면 됩니다.
1 - 1 = 0
1 + (-1) = 0
0000 0001 + (-1) = 0000 0000
-1 = 1111 1111
단지 0과 1로 데이터를 저장한다는 간단한 내용에서 음수는 메모리상 어떻게 있는지 조금 더 알아 보았습니다.