如果char和signed char的范围都是-127 - 127,那么signed char的目的是什么? 我们使用signed char而不仅仅是char的地方是什么?
答案 0 :(得分:19)
unsigned char
未签名。
signed char
已签名。
char
可能是未签名的或签名,具体取决于您的平台。
当您确定要签名时使用signed char
。
答案 1 :(得分:7)
是实现定义普通char
是否使用相同的
表示为signed char
或unsigned char
。 signed char
是
之所以介绍是因为普通的char
未被指定。还有
发送给读者的信息:
char
:字符数据signed char
:小型迭代unsigned char
:raw memory (如果您做了很多按位,也可以使用unsigned char
操作。在实践中,这往往与原始内存重叠
使用。)
答案 2 :(得分:1)
请注意,在许多系统上,char
为signed char
。
关于你的问题:嗯,当你需要一个小的签名号码时,你会使用它。
答案 3 :(得分:1)
见lamia,
首先,我想为您的问题准备背景。
................................................
char 数据类型有两种类型:
unsigned char;
签名char;
(即INTEGRAL DATATYPES)
............................................... ..
根据不同的书籍发布:
char 1byte -128到127(即默认签名字符)
签名字符1byte -128到127
unsigned char 1byte 0 to 255
.................................................
另外一件事1byte = 8位。(零到第7位)
由于处理器标志寄存器保留第7位用于表示符号(即1 = + ve& 0 = -ve)
-37将表示为1101 1011(最高有效位为1),
+37将表示为0010 0101(最高有效位为0)。
............................................... ..
同样,对于char,最后一位默认为签名
这就是为什么?
因为char也依赖于特定字符的ASCII码(例如,A = 65)。
在任何情况下,我们都使用char并仅使用7位。
在这种情况下,为了将char / int的内存范围增加1位,我们使用unsigned char或unsigned int;
感谢您提出问题。