상세 컨텐츠

본문 제목

[TIL] 2 - 2. 데이터형 - 정수형

언어/C

by 민:하 2022. 3. 1. 21:39

본문

 

< limits.h 헤더파일 >

  • 정수형 데이터의 크기를 limits.h 헤더파일에서 확인 가능
  • limits.h 헤더파일에는 INT_MAX, INT_MIN, CHAR_MAX, CHAR_MIN이 define 되어있다.

 

< 정수형의 종류 >

  • char / unsigned char
  • short / unsigned short
  • int / unsigned int
  • long / unsigned long
  • long long / unsigned long long

 

< 정수형의 저장방식 >

  • 양수 : 부호화 절대치 표현
  • 음수 : 2의 보수 표현

 

< 2의 보수 만들기 >

① 바꾸고자 하는 대상 숫자(절대값)을 2진수로 변환

② 위의 결과를 다시 1의 보수로 변환

③ 위의 결과에 1을 더한다.

 

 

< 최대값을 넘어가는 숫자 >

#include <stdio.h>
int main() {
  short x = 32767;	// short의 최대값
  short y = x + 1;	// short형의 최대값보다 1큰 값을 y에 저장
  printf("x = %hd\t y = %hd\n", x, y);
  return 0;
}

x = 0 1 1 1 / 1 1 1 1  / 1 1 1 1 / 1 1 1 1 : signed short의 최대값

y = 1 0 0 0 / 0 0 0 0 / 0 0 0 0 / 0 0 0 0 = -32768 : y는 unsigned short가 아니기 때문

따라서 결과는 x = 32767    y = -32768

 

▶ 정수 저장 시 규칙

① 최대값 + 1 = 최소값

② 최소값 - 1 = 최대값

관련글 더보기

댓글 영역