char的范围是一个循环的圆

说明:

1、char类型再某一种意义上算是一种整型。

内容来自:http://t.csdn.cn/yiym5icon-default.png?t=N7T8http://t.csdn.cn/yiym5

 2、char类型实际上分为signed char 和 unsigned char  ,再一些编译器中(例如VS)signed char 其实等价于char ,下文的char 我们将默认为signed char

3、char 的范围是 0~255 unsigned char 的范围是 -128~127

4、不论是char 还是unsigned char 的范围都像是一个循环轮回的圆。

证明:

int main()
{
unsigned char a = 255;
unsigned char b = 1:
unsigned char c = 0;
c = a + b;
printf("%d ",c);
return 0;

}

以上代码再VS编译器中进行运行,得到的结果是0

char的范围是一个循环的圆_第1张图片 

根据说明,我们得知char的范围是0~255,从结果进行判断,我们可以得知再char中 255+1=0

所以,我们可以得出结论,char的范围是一个循环的圆。

char的范围是一个循环的圆_第2张图片 

同样 unsigned char 也是如此。

char的范围是一个循环的圆_第3张图片 

例题:

 char的范围是一个循环的圆_第4张图片

  •  因为unsigned char的范围是0~255所以abc三个是合法存在的
  • 且a+b理论上是可以得到300的但是,三百赋值是付给了unsigned char类型的c,所以发生了截断,相反a+b用%d的形式打印出是合理合法的
  • 又因为char和unsigned char是范围其实是一个圆,范围会再255之后又返回到0继续开始循环
  • 且根据以上的原理,所以c=300再unsigned char内其实是300-255-1=44。
  • -1的原因是循环是从0开始的。

 

你可能感兴趣的:(C语言,数据存储,VS编译器,算法,c语言,数据存储)