码迷,mamicode.com
首页 > 其他好文 > 详细

unsigned int与int相加

时间:2015-05-29 20:07:45      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

int main()
{
    int a = -6;
    unsigned int b = 4;
    if(a+b > 0)
        printf("a+b>0\n");//这句话被打印
    else
        printf("a+b<0\n");
    int z = a+b;
    if(z > 0)
        printf("z>0");
    else
        printf("z<0");//这句话被打印
}

当int和unsigned in相加时,要将int转化为unsigned int,而int小于0,所以它的最高位是符号位,为1,所以转化的结果是一个很大的正数,

在第一个if语句中,是两个“正数”相加,结果自然就大于0了。而在z = a+b这一句时,它把a+b的结果看做一个int类型,而a+b最高位为1,所以z是一个负数,所以打印的是第二个语句。

unsigned int与int相加

标签:

原文地址:http://www.cnblogs.com/XiHua/p/4539168.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!