C/C 无符号整数溢出

新手上路,请多包涵

我正在阅读有关整数安全性的文章。这是链接:http: //ptgmedia.pearsoncmg.com/images/0321335724/samplechapter/seacord_ch05.pdf

第166页说:

涉及无符号操作数的计算永远不会溢出,因为无法由生成的无符号整数类型表示的结果会以比结果类型可以表示的最大值大一的数字为模减少。

这是什么意思?感谢回复。

原文由 Detective King 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 533
1 个回答

这意味着价值“环绕”。

 UINT_MAX + 1 == 0
UINT_MAX + 2 == 1
UINT_MAX + 3 == 2

.. 等等

正如链接所说,这就像模运算符: http ://en.wikipedia.org/wiki/Modulo_operation

原文由 Pubby 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题