C++ Chapter 2.2 : 정수형(Integer), 고정 너비 정수
카테고리: Cpp
태그: Cpp Programming
인프런에 있는 홍정모 교수님의 홍정모의 따라 하며 배우는 C++ 강의를 듣고 정리한 필기입니다. 😀
🌜 [홍정모의 따라 하며 배우는 C++]강의 들으러 가기!
Chapter2. 변수와 기본 자료형
정수형 Integer
int
i = 1- 32 bits
- 00000000 00000000 00000000 00000001
- 맨 앞 0은 sign 부호 비트
- 00000000 00000000 00000000 00000001
- 32 bits
signed short
- 16 bits
-
범위
\[[{-2}^{15} , 2^{15}-1]\] -
개수
\[2^{16}개\]
-
- 16 bits
unsigned short
- 16 bits
-
범위
\[[0 , 2^{16}-1]\] -
개수
\[2^{16}개\]
-
- 16 bits
- overflow, underflow가 발생하면 각 타입의 범위 내에서 순환한다.
- ex) 2^15 를 signed short에 넣으면 범위 밖이니 순환되어 오히려 (- 2^15) 가 저장 됨.
- 단,
unsigned
에 음수를 넣으면 순환되는게 아닌 오히려 이상한 값으로 저장된다.- ex) unsigned short 타입에 음수 -1 를 넣으면 순환된 ( 2^16 - 1 ) 이 아닌 이상한 값 나옴
- unsigned에 음수 넣지 말자~
형변환
- int i = 22/4
- i에는 5가 들어간다. 소수점 뒷자리를 자르고 정수로.
- 몫만 들어가게 되는 형태
- i에는 5가 들어간다. 소수점 뒷자리를 자르고 정수로.
- 22/4.0
- 5.0 의 실수형태로 들어감
고정 너비 정수
- #include <cstdint>
- C++11 부터 사용 가능
std::int16_t i(5);
int16_t
- 5값으로 초기화 된 i 의 데이터 타입을 16bits, 즉 2 byte 데이터 타입의 int 로 바꿔준다.
std::int8_t myint = 65;
cout << myint << endl; // 'A' 문자가 출력된다.
int8_t
- 65값으로 초기화 된 myint의 데이터 타입을 8bits, 즉 1byte 데이터 타입의 int로 바꿔준다.
- 8bit 짜리 int는 char이다.
signed char
- myint를 출력하면 ‘A’가 출력됨
std::int_fast8_t fi(5);
int_fast8_t
- 5값으로 초기화 된 fi 의 데이터 타입을 8 bit 중 가장 빠른 데이터 타입으로 바꿔준다.
std::int_least64_t fl(5);
int_least64_t
- 5값으로 초기화 된 fl 의 데이터 타입을 적어도 64 bit를 갖는 데이터 타입으로 바꿔준다.
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기