利用整形数据补码存储的原理简单输出int型数据最小值和最大值:
这种方法显示int型数据的范围,不受编译器闲置(即根据具体的编译器2字节或4字节都可以)
#include <stdlib.h>
#include <stdio.h>
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;
}