主要用来测试了下补码的循环加减结果,unsigned类型的循环结果,某类型(包括unsigned类型)范围的最大值。
#include<stdio.h>
int main()
{
unsigned char a = 255;
a = a+1;
printf("a=%d\n",a);
char b = -128;
b = b-1;
char c = -128;
printf("b=%d, c=%d\n",b,c-1);
char d = 127;
d = d+1;
printf("d=%d\n",d);
int e=0;
while(++e>0);
e = e-1;
printf("int类型e的最大值%d\n",e);
unsigned int f=0;
f = f-1;
printf("unsigned int类型f的最大值%u\n",f);
return 0;
}
结果如下:
注意:
1、b、c值输出的区别,尽管都是减1操作,但是结果不同。因为c-1的结果在%d能够输出范围内,因此输出-129,而不是127。
2、通过while循环使e+1,当e大于最大值的时候循环跳出,此时e为最小值;再通过e=e-1,得到e等于该类型的最大值。