c语言signed char, char, unsinedchar区别

怎样理解 “无论char怎样实现, c语言signed char, char, unsinedchar都是不同类型, 把一种类型映射到另一种类型都需要转化”。

我不是很赞同这句话!!

(1)
char 和 signed char是一个意思,没有unsigned标识,就是有符号类型
unsined char是无符号类型!

(2)
char ch='a' ;
unsigned char ch1='b' ;
无论是ch=ch1; 还是ch1=ch ;都不需要类型转化,因为它俩的大小和数据存储方式是相同的,区别只在字节的第一位如何解释的问题!
(3)
有符号类型首位表示符号,0正,1负。无符号没这说法,8位全表示数。
用这个来说类型转化是有问题的!
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-17
以上3种都是1个字节(8bit)的数据类型。char根据系统不同,属于signed char和unsigned char中的一种。
signed char 有符号8位数据,从-128到127的(11111111-01111111,这里的第一位是符号位)
unsigned char 无符号8位数据,从0-255(00000000-11111111)
一般char默认是 signed char。但是由于系统实现及历史遗留原因 导致部分系统或者编译器使用unsigned char,所以在转换时,最好加上强制类型转换,以免转换时出现错误。本回答被提问者采纳
相似回答