C语言,char字符型的取值范围是0-255,表示的是只有255字符(难道计算机只有255个字符吗)

C语言,char字符型的取值范围是0-255,表示的是只有255字符(难道计算机只有255个字符吗),还是表示一个字符的最大长度是255。

其实是这样算的,CHAR字符型数值表示以一个字节为基准(一个字节8位)那按照二进制推算(2的8次方是256),因为是无符号字符型所以是0-255 当255再加1时,就会溢出,此时得到的结果为0。 而如果是有符号,则第7位(即最高位做为符号位 1为负,0为正)所以此时得到的数值就该在-127-127之间。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-19

首先ASCII表设计的时候没有考虑到中文字符。

然后关于ASCII表中的字符个数可以网上查到是256个

因为char类型占内存为1Byte == 8bit,每个bit位都有0/1两个可能,所以2的8次方为256。     其中前128个为常用的字符 如 运算符 字母 数字等 键盘上可以显示的,后128个为 特殊字符 是键盘上找不到的字符。

如题主所说0-255 从0开始计数到255不就是256个吗?

另外题外话,unsigned char(无符号)类型的取值范围才是0-255,signed char类型的取值范围为-128 -127。同时并不是所有的编译器默认的char类型就是unsigned char类型,可以写个C语言小程序试验一下。

第2个回答  推荐于2017-11-25
你自己都说了一个字符, 一个字符就是一个字节, 长度为一个字节
char字符里面的值, 取值范围是0-255

你把字符串和字符混淆了吧, 字符串最大长度为255个字符本回答被提问者和网友采纳
第3个回答  2012-08-26
计算机是老外发明的,他们的字母也就26个,所以一个char就够了,ASCII编码
国际化肯定是不够用的,比如中文,所以就有了其它的编码格式,
如UTF-8编码,汉字通常由3个字节表示,也就是3个char,
其它的比如还有unicode编码啊等等。。。
第4个回答  2018-04-24
char型默认为signed char有符号,取值范围为-128---127
相似回答