C/C++中数据类型为什么会有正数和负数范围

比如char是一个字节所表示的正数范围是0--255
负数是-128--127
是不是负数范围只是在补码中才会用,再编写程序时不会用到哪

    C/C++中所有的整数都用二进制补码表示。

    char型的正数范围是1~127而不是0~255;unsigned char型的范围才是0~255。

    char型的范围是-128~+127。

因为整数域客观上存在负数、0和正数,所以C/C++的整数数据类型必须“适应”这种客观需要;unsigned数据只是在实际问题不涉及负数时定义的所谓“无符号数”,用以扩展有限的二进制位长表达更多的整数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-30
每种类型都分为: 有符号和无符号两种
比如你所说的char类型,也分为:unsigned char 和signed char
char在大多数的编译器中是认为是signed char。
unsigned char的取之范围是:0-255 (8为都是数据)
signed char的取之范围是:-128 - 127 (最高位是符号位,剩下7位是数据)。
无论是有符号数还是无符号数在内存中都是以补吗的方式存储的。本回答被网友采纳
第2个回答  2017-05-30
知道这个范围就行,实际中用不用,要看实际的情况
~
~
~
相似回答