【发布时间】:2018-11-21 17:27:21
【问题描述】:
我之所以提到这个问题,是因为我不明白如果 0 到 255 的 ASCII 字符的范围是从 -128 到 127,那么它是如何用有符号字符表示的。
由于 char = sizeof(char)= 1 byte,所以认为它可以很容易地表示最大值为 255 的值也是合理的;
那么为什么赋值:char a = 128 没有错,为什么我不应该使用 unsigned char 呢。
提前谢谢你!
【问题讨论】:
-
我阅读了可能重复的评论,但我仍然有疑问。如果我尝试 printf("%c",a) 将输出字符 ç,因此 char a 有效地产生值 128,只有 unsigned char 可以表示,并且基本上管理溢出不为变量分配负值但将其转换为无符号字符?
-
这似乎是关于使用 128 到 255 范围内的代码单元值的字符编码的一般问题。ASCII 字符编码不是其中之一。此外,ç 甚至不在 ASCII 字符集中。