char和unsigned char之间有什么区别?

char和unsigned char之间有什么区别?,c,char,unsigned-char,C,Char,Unsigned Char,(已编辑将C/C++更改为C) 请帮助我找到C语言中char和unsigned char的清晰说明。特别是当我们在嵌入式设备和普通PC机之间传输数据时(无符号char和纯char的缓冲区之间的差异)。您询问的是两种不同的语言,但在这方面,两者的答案(或多或少)是一样的。不过,你真的应该决定使用哪种语言 差异: 它们是不同的类型 它的实现定义了char是有符号的还是无符号的 相似之处: 它们都是整数类型 它们大小相同(一个字节,至少8位) 如果您只是简单地使用它们来传输原始字节值,而不使用

(已编辑将C/C++更改为C)


请帮助我找到C语言中
char
unsigned char
的清晰说明。特别是当我们在嵌入式设备和普通PC机之间传输数据时(无符号char和纯
char
的缓冲区之间的差异)。

您询问的是两种不同的语言,但在这方面,两者的答案(或多或少)是一样的。不过,你真的应该决定使用哪种语言

差异:

  • 它们是不同的类型
  • 它的实现定义了
    char
    是有符号的还是无符号的
相似之处:

  • 它们都是整数类型
  • 它们大小相同(一个字节,至少8位)

如果您只是简单地使用它们来传输原始字节值,而不使用算术运算,那么就没有实际的区别。

char类型是特殊的。它不是无符号字符或有符号字符。这是三种不同的类型(而int和signed int是相同的类型)。字符可能具有有符号或无符号表示

从3.9.1基本类型

纯字符、有符号字符和无符号字符是三种不同的类型。A. 字符、有符号字符和无符号字符占用相同数量的 储存和校准要求相同(3.11);就是他们, 具有相同的对象表示形式


没有C/C++这样的东西。你可以使用C或C++,但不能同时使用。请选择您想询问的语言中的一种。在C语言中,区别在于符号性
char
可以以实现定义的方式进行有符号或无符号,而
unsigned char
显然总是无符号的。在编码或解码操作期间,我可以知道char和unsigned char类型的区别和效果吗@user3447428虽然它们确实是不同的语言,而且在“C/C++”中询问某些东西是如何工作的确实没有意义,但当涉及到
char
。@user3458841什么是“编码或解码操作”时,这两种语言的行为恰好完全相同?这可能意味着什么。“Lundin并没有关系。如果我考虑‘C’语言,我能知道编码和解码操作中char和unchar字符类型的区别和影响。”唯一真正的区别是,
无符号字符
不一定有符号,
字符
可能有符号,也可能没有符号。(由实现定义
char
是有符号的还是无符号的,这意味着它可以是有符号的,完全由编译器编写者随意决定,但编译器必须记录它是哪一个。)处理原始数据时,应显式使用
无符号的char
。处理有意义的数据时,应根据数据的意义选择有符号类型或无符号类型。如果数据的有符号性完全不相关,请使用普通的
char
。嗨,迪特尔,在硬件级(在设备驱动程序开发中)进行编码或解码操作时,有没有考虑过char和无符号char?谢谢,我很好地解释了。