#include <stdio.h>    →printf의 원형이 있기 때문에 써야 한다.
#include <math.h>    →pow의 원형이 있기 때문에 써야 한다.

int main(void)
{
 short a,b;
 unsigned short c;
     
  a=pow(2,15)-1;
  b=pow(2,15);
  c=pow(2,15);

  printf("a의 값은 %d이다\n", a);
  printf("b의 값은 %d이다\n" ,b);
  
  printf("c의 값은 %d이다\n", c);

 return 0;
}

gcc 예제3-2.c

a.exe

a의 값은 32767이다

b의 값은 32767이다 →요즘 pow가 개선되어 오버플로우가 발생하지 않고 최대값으로 리턴 받는다.

c의 값은 32768이다 →unsigned는 부호 없는 정수형을 선언하며 범위는 0~2^16-1

                              32768은 unsigned범위 안에 해당되므로 오버플로우가 발생하지 않는다.

 

 

▣생략된 것은 기본적으로 signed가 쓰여져 있는 것이다.

   signed는 정수형의 기본형으로 부호를 포함한다.

 정수형

바이트수 

허용 범위 

 (signed) short (int)

   2  

-2^15~2^15-1 

 unsigned short

 2

 0~2^16-1

 int

 4

 -2^31~2^31-1

 unsigned int

 4

 0~2^32-1

 long (int)

 4

 -2^31~2^31-1

 unsigned long

 4

 0~2^32-1

 

signed int는 32bit에서 1bit가 부호를 결정 그리고 31비트가 수의 크기.


+ Recent posts