输出整形数据的最大值和最小值

2014-04-07 00:35:46 · 作者: · 浏览: 90

  利用整形数据补码存储的原理简单输出int型数据最小值和最大值:

  这种方法显示int型数据的范围,不受编译器闲置(即根据具体的编译器2字节或4字节都可以)

  #include

  #include

  int main()

  {

  unsigned int min=0,max=-1;// 或 int a=-1;

  //存储单元中的数据(补码)全部为 1

  printf("type: unsigned int \nbytes:%d\n", sizeof(unsigned int));

  printf("min = %d \t max = %u\n\n", min,max);

  int max1=max>>1;//补码首位为0,其余位为1

  int a=1;

  min=a<<(sizeof(int) * 8 - 1);//补码首位为1,其余位为0

  printf("type: signed int \nbytes:%d\n", sizeof(signed int));

  printf("min = %d \t max = %u\n", min,max1);

  return 0;

  }