C++中char和unsigned char的转换
2个回答
展开全部
首先,在C中,数据之间的运算必须是同类型的才能进行运算。如果类型不一致,就必须先转换成相同的类型----------由低级别
→
高
级别转换。
本题中,数据类型级别由低到高分别为:char→int→unsigned→long。转换时由低级别向高级别转换。
比如,有两个数的数据类型分别为:char型跟long型。
就要先char转换为long型(因为long级别比char高),再进行运算。
但是不能理解为:先将char转换成int,再转换成unsigned,再转换成long。
→
高
级别转换。
本题中,数据类型级别由低到高分别为:char→int→unsigned→long。转换时由低级别向高级别转换。
比如,有两个数的数据类型分别为:char型跟long型。
就要先char转换为long型(因为long级别比char高),再进行运算。
但是不能理解为:先将char转换成int,再转换成unsigned,再转换成long。
展开全部
char为字符类型。unsigned
char为无符号字符类型。
二者均是占一个字节,可以直接通过强制转换的方式,把char类型的值转为unsigned
char。
当定义变量:
unsigned
char
a;
char
b;
转换的形式为:
a
=
(unsigned
char)b;
当char类型的值为正时,转换后的值为原值。
当char类型为负时,原始值的符号位会转为数据位,即结果值为原始值补码代表的无符号值。具体计算公式为,
结果值=256+原始值。
char为无符号字符类型。
二者均是占一个字节,可以直接通过强制转换的方式,把char类型的值转为unsigned
char。
当定义变量:
unsigned
char
a;
char
b;
转换的形式为:
a
=
(unsigned
char)b;
当char类型的值为正时,转换后的值为原值。
当char类型为负时,原始值的符号位会转为数据位,即结果值为原始值补码代表的无符号值。具体计算公式为,
结果值=256+原始值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询