鱼C论坛

 找回密码
 立即注册
查看: 2859|回复: 1

[已解决]unsigned的用法

[复制链接]
发表于 2018-12-31 23:21:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
老哥们,unsigned不是无符号整形的意思么#include<stdio.h>
    int main() {
        int a, b, c;
        unsigned u,d;
        a = 12;
        b = -24;
        u = -10;
        c = a + u;
        d = b + u;
        printf("u + a = % d, b + u =%d\n",c, d);
编译结果u+a=2,b+u=-34
我把d定义成了无符号整形,为什么输出的结果还带符号(-)
还有就是我也把u定义成了无符号整形,为什么u还是在里面是以(-10)的形式运算,不该是以(10)的形式进行计算么
最佳答案
2019-1-1 15:58:55
无符号类型和int类型之间相加运算,可以总结为,先将无符号的数u先和int类型的i相加,如果算出的结果在unsigned之间的话(0~2147483647*2+1)之间的话,则结果就是这个范围里的数,如果,他们相加的数,是负数,或者超出这个范围,则最后的结果转化成无符号类型。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-1-1 15:58:55 | 显示全部楼层    本楼为最佳答案   
无符号类型和int类型之间相加运算,可以总结为,先将无符号的数u先和int类型的i相加,如果算出的结果在unsigned之间的话(0~2147483647*2+1)之间的话,则结果就是这个范围里的数,如果,他们相加的数,是负数,或者超出这个范围,则最后的结果转化成无符号类型。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-23 13:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表