为什么无符号算术运算中,没有溢出一说

pang123hui 2009-10-29 11:36:25
今天在翻《c陷阱与缺陷》时,看到这么一句话:

在无符号算术运算中,没有所谓的溢出一说:所有的无符号运算都是以2的n次方位模,这里n是结果中的位数。

那为什么无符号算术运算中没有所谓溢出呢?

谁给咱说说啊?谢谢了
...全文
828 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zishan169 2009-10-30
  • 打赏
  • 举报
回复
来学习的,还没看到这书
theone11 2009-10-30
  • 打赏
  • 举报
回复
楼主去补补离散数学里面的群论吧,100 mod 16 会溢出么?
thy38 2009-10-30
  • 打赏
  • 举报
回复
模运算嘛,哪有什么溢出
火山1009 2009-10-30
  • 打赏
  • 举报
回复
咋听不懂呢,
selooloo 2009-10-30
  • 打赏
  • 举报
回复
有符号数运算以2的n次方为模的话也没溢出了吧
晨星 2009-10-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 pang123hui 的回复:]
今天在翻《c陷阱与缺陷》时,看到这么一句话:

在无符号算术运算中,没有所谓的溢出一说:所有的无符号运算都是以2的n次方位模,这里n是结果中的位数。

那为什么无符号算术运算中没有所谓溢出呢?

谁给咱说说啊?谢谢了
[/Quote]
人家上下文不是都说的很清楚了么,“所有的无符号运算都是以2的n次方为模”——从这个意义上,当然无所谓溢出了。
jackyjkchen 2009-10-30
  • 打赏
  • 举报
回复
有溢出,不过无符号运算经常有意溢出来获取结果
butwang 2009-10-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kingstarer 的回复:]
谁说的 (size_t) -1 + 1 看溢出不
[/Quote]

-1和1默认都是带符号的吧
飞天御剑流 2009-10-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 pang123hui 的回复:]
今天在翻《c陷阱与缺陷》时,看到这么一句话:

在无符号算术运算中,没有所谓的溢出一说:所有的无符号运算都是以2的n次方位模,这里n是结果中的位数。

那为什么无符号算术运算中没有所谓溢出呢?

谁给咱说说啊?谢谢了
[/Quote]

标准摘录:

6.2.5 Types

A computation involving unsigned operands can never overflow, because a result that cannot be represented by the resulting unsigned integer type is reduced modulo the number that is one greater than the largest value that can be represented by the resulting type.
kingstarer 2009-10-29
  • 打赏
  • 举报
回复
谁说的 (size_t) -1 + 1 看溢出不

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧