yokoso osaka ticket:c语言有符号整型数与无符号整型数相加得到什么呀

来源:百度文库 编辑:高校问答 时间:2024/05/04 21:51:21
unsigned int a=6;
int b=-12;
a+b与0的大小关系如何
在这样条件下呢
if(a+b>0)do something
else do other things
应该执行什么代码呢??

a+b 得到的是一个无符号数,只有在转换的条件下才返回有符号数

a+b默认返回的是无符号数,如果这样得到的是一个有符号数 int c;c=a+b;当然c>0,但a+b>0因为结果作为一个无符号数已经溢出了,所以又加了65536结果变成一个正数了

反正我用int i=-7;unsigned int j=5;printf("%d",(i+j));
最后输出-2.。。。。

如果你定义int c=a+b;c=-6
如果unsigned int d=a+b;会溢出

把无符号数转换为有符号数再相加。在这里,a+b=-6。则其与0的关系就显而易见了。