c/c++ unsigned类型的溢出问题

luuillu luuillu 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
1.
c/c++中的unsigned 类型的变量发生溢出时,是舍掉溢出的部分,直接取低位部分作为结果,还是结果是未定义的?

如果:
unsigned a=0xffffffff;
unsigned b=a+3;

那么此时b=2,还是b的值是未定义的?

2.
无符号数作减法是否会发生溢出?
如果
unsigned a=1;
unsigned b=4;
那么
a-b 会溢出吗?
(我的理解是,因为a-b=-3超出了usined的表示范围,因此会发生溢出)

b-a 会溢出吗?
(我的理解是,因为在计算机中,减法是按补码计算的,所以b-a=4+(-1)=4+0xffffffff,这超出了usined的表示范围,因此也会溢出。)
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
luuillu
C++ 语言 65,214 成员 250,514 内容