프로그래머 공간/C언어

[C언어] 기본 데이터형(primitive Date type) - 정수형

ikohong 2019. 11. 29. 13:11
728x90
반응형

[C언어] 기본 데이터형(primitive Date type) - 정수형

By i!kohong(아이코홍)


정수형 종류


  • signed (부호 있는 정수형)
  • unsigned 형 (부호 없는 정수형)

정수형 크기 (32bit 플렛폼 기준)

  • short: 2byte
  • int 형 : 4byte
  • long 형 : 4byte

부호 있는 정수형


최상위 비트(most significant bit)를 부호 비트(sign bit)로 사용한다.

일반적으로 정수 값을 저장할 때 주로 사용.

부호 비트가 1 : 음수

부호 비트가 0 : 양수

음수 표현 방법

2의 보수(2's compliment)를 사용

정수형 -N의 값을 2진수로 표현

1. N의 값을 2진수로 표현을 한다.

2. 모든 비트를 반전한다. (0 1, 1 0)

3. 마지막 비트에 +1의 값을 더한다.

예시


short s = - 10;


부호가 없는 정수형


최상위 비트(most significant bit)의 값을 저장하는 용도로 사용

바이트 단위의 데이터를 저장할때 주로 사용.

부호가 있는 정수형의 최상위 비트 1 : 음수를 뜻함

부호가 없는 정수형의 최상위 비트 1 : 2의 n승 값

예시


short s = -10;

unsigned short us = 65526;


오버 플로어 ,언더 플로어


값의 유효 범위를 넘어서 다른 결과값을 갖게 되는 경우

오버플로우, 언더플로우가 발생하면 해당 데이터형의 유효 범위 내의 값으로 설정됨.

 정수형 유효 범위와 오버 플로어, 언더 플로어

 유효 범위

분류 데이터형 바이트 크기 유효 범위
문자형 char 1 -128 (-2⁷) ~ 127 (2⁷-1)
unsigned char 1 0 ~ 255(2⁸ - 1)
정수형 short 2 -32768(-) ~ 32767(⁵-1)
unsigned short 2 0 ~ 65535(⁵-1)
int 4 -2147483648(-2³¹) ~ 2147483647(2³¹-1)
unsigned int 4 0 ~ 4294967295(2³²-1)
long 4 -2147483648(-2³¹) ~ 2147483647(2³¹-1)
unsigned long 4 0 ~ 4294967295(2³²-1)
실수형 float 4 ± 1.17549 X 10¯³⁸ ~ ± 3.40282 X 10³
double 8 ± 2.22507 X 10¯³⁸ ~ ± 1.79769 X 10³
long double 8 ± 2.22507 X 10¯³⁸ ~ ± 1.79769 X 10³

참고


 변수의 데이터형

변수에 저장되는 이진표현이 같더라도 변수의 데이터형이 무엇인가에 따라 값의 의미가 달라짐.

문자형인 char형도 1 byte 크기의 정수형처럼 사용이 가능함.


오버 플로어


유효 범위의 최대값에서 벗어나 최소값으로 돌아가 값이 커지는 경우

예시


short s = 32767;

s = s + 1;

결과값 : -32768

 

unsigned short us = 65535;

us = us + 1;

결과값 : 0


언더 플로어


유효 범위의 최소값에서 벗어나 최대값으로 돌아가 값이 작아지는 경우

예시


short s = -32768;

s = s - 1;

결과값 : 32767

unsigned short us = 6;

us = us - 9;

결과값 : 65533

728x90
반응형