#따배씨 2.2 정수형(Integers)
by #독개#char도 정수형에 속한다
int 형이 플랫폼에 따라 최소로 잡아서 2byte로 잡는경우도 있다
보통은 4byte를 쓴다
(signed) int 가장 앞의 비트는 부호에 사용된다
양수면 첫번째 0
음수면 첫번째 1
unsigned int 부호가 필요없으므로 한비트를 숫자로 더쓸수있다
그런데 고작 이차이로 signed와 unsigend를 구분해서 쓰진말자 매우비효율적
오버플로우
#include <iostream>
#include <limits>
int main()
{
using namespace std;
cout << numeric_limits<short>::max() << endl; //short의 최대값
cout << numeric_limits<short>::min() << endl; //short의 최소값
cout << numeric_limits<int>::max() << endl; //int의 최대값
cout << numeric_limits<int>::min() << endl; //int의 최소값
//min과 lowest의 차이는 min은 최소의 절대값을 의미함 -255면 255를 나타내주고 lowest 는 -255를 다나타내준다
cout << numeric_limits<int>::lowest() << endl;
// short가 표현할수 있는 수는 2byte 이므로 -32768~32767까지다
short s = 32767 + 1; // 32768이 나와야하는데 결과값은 -32768이 나온다 (오버플로우증상)
short x = 32767 + 5; // 출력값 -32764
short t = -32768 - 1; // -32769가 나와야하는데 32767이 나온다 (오버플로우증상)
cout << "s : " << s << endl;
cout << "x : " << x << endl;
cout << "t : " << t << endl;
unsigned num = -1; // 출력값 4294967295 (오버플로우증상)
cout << num << endl;
cout << 22 / 4 << endl; //출력값 5나옴 정수끼리의 연산은 정수로 표현함
cout << (float)22 / 4 << endl; //출력값 5.5 하나라도 float값이면 float로 결과값 표현
cout << 22 / (float)4 << endl; //출력값 5.5
}
중요한건 메모리공간의 값을 벗어나는 값이 들어오면 오버플로우 넘쳐흐른다 라는 사실을 알아야한다.
넘쳐흐르면 예상치못한 값이나온다
🐱👓독하게 개발
'🔥 프로그래밍 학습 > C++' 카테고리의 다른 글
#따배씨 2.4 무치형 (Void type) (0) | 2022.11.03 |
---|---|
#따배씨 2.3 C++ 11 고정 너비 정수 (Fixed-width Integers) (0) | 2022.11.03 |
#따배씨 2.1 기본 자료형 소개 (0) | 2022.11.03 |
#따배씨 1.14 전처리기# 와의 첫만남 (0) | 2022.11.03 |
#따배씨 1.13 네임스페이스 (명칭 공간) (0) | 2022.11.03 |
블로그의 정보
독한 개발자
#독개#