• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++中的取余与取模

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

目前为止,我并没有找到C++中数学意义上的取模操作。%是一种取余运算。

假设r = a mod b,关于取模与取余的一点概念有:

  • 公式都是:c = a / br = a - c * b

  • 对于a / b >= 0的结果,取模和取余等价

  • 如果a / b < 0,那么对于取模,c向负无穷舍入;对于取余,c向0舍入

那么,C++中什么时候会用到取模?

在类型转换时,当把一个超出范围的值v赋给一个无符号类型时,其计算方法是:

  1. 先确定无符号类型的可取数n

  2. 最终结果 = v mod n

比如,把-1赋值给unsigned char时,计算公式是:-1 mod 256,结果是255。

而如果把-1赋值给unsigned int时,结果则是4294967295。今天出了一个bug,原因就是错误地把负数强制转换成了unsigned int,本应该转换成unsigned char,但二者的结果大不相同。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c#的细节(二)-修饰符发布时间:2022-07-13
下一篇:
二叉树数组C++实现发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap