+ -
当前位置:首页 → 问答吧 → 无符号整形运算问题

无符号整形运算问题

时间:2010-06-29

来源:互联网

#include<stdio.h>
int main()
{
        unsigned int a=6;
        int b=-20;
        (a+b>6)?printf(">6"):printf("<6");
        return 0;
}


这个函数的输出结果是什么?为什么

作者: lztneki   发布时间: 2010-06-29

好像有类似的帖子

作者: EricFisher   发布时间: 2010-06-29

google “整型提升”

作者: proghua   发布时间: 2010-06-29

unsigned和一个int相加的时候如3楼所说会都提升成unsigned来处理,而且比较也是升级成为unsigned
作为无符号整数,-20是0xFFFFFFEC,6就是0x6,相加就是0xFFFFFFF2,大于号右边是6,由于左边是unsigned,两者按照无符号整数来比大小,此时是左边的大,所以说…………

作者: daybreakcx   发布时间: 2010-06-29

可以在格式化输出的时候分别用%d和%u看一下。

作者: donglongchao   发布时间: 2010-06-29