Signed Char的目的是什么?

时间:2011-08-09 13:51:10

标签: c++ c

如果char和signed char的范围都是-127 - 127,那么signed char的目的是什么? 我们使用signed char而不仅仅是char的地方是什么?

4 个答案:

答案 0 :(得分:19)

  • unsigned char未签名。

  • signed char已签名。

  • char可能是未签名的签名,具体取决于您的平台。

当您确定要签名时使用signed char

可能相关:What does it mean for a char to be signed?

答案 1 :(得分:7)

是实现定义普通char是否使用相同的 表示为signed charunsigned charsigned char是 之所以介绍是因为普通的char未被指定。还有 发送给读者的信息:

  • plain char:字符数据
  • signed char:小型迭代
  • unsigned char:raw memory

(如果您做了很多按位,也可以使用unsigned char 操作。在实践中,这往往与原始内存重叠 使用。)

答案 2 :(得分:1)

请注意,在许多系统上,charsigned 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;

感谢您提出问题。