作业帮 > 综合 > 作业

C语言中 有符号和无符号的数相加 怎么算?

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/05/01 13:48:41
C语言中 有符号和无符号的数相加 怎么算?
unsigned char A;
A=5;
signed char B;
B=-12;
那么 A+B怎么算呢 结果是多少呀
C语言中 有符号和无符号的数相加 怎么算?
这里是unsigned char和signed char求和,根据标准,加法的两侧操作数在可能的情况下会提升为共同类型,通常是int,那么此时会转换为计算
(int)A + (int)B
结果是int类型的-7

当然在赋值给某个类型的情况下,还会做转换.若赋值给int,那么就是-7,若赋值给unsigned int,那么结果是2^n - 7,这里n是unsigned int的位数,通常是32.