温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Utility中如何实现负数取模

发布时间:2021-12-22 10:47:53 来源:亿速云 阅读:128 作者:小新 栏目:互联网科技

这篇文章主要为大家展示了“Utility中如何实现负数取模”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Utility中如何实现负数取模”这篇文章吧。

最近在跟孩子学习表内除法,想到一个问题:C语言里怎样处理负数取模?

  表内除法:12÷4=3
  整数除法:13÷4=3…1
  整数整除:13/4是等于3吗?
  负数取模:-13%4等于多少?13%-4呢?-13%-4呢?

先看看整除。明明除不尽,又要求结果是整数,一般有这样几种方法:

  • 向上取整(Ceiling),即向+∞靠齐,也就是取比浮点数结果稍大的最小整数。那么:13/4=4;-13/4=-3;15/4=4;-15/4=-3

  • 向下取整(Floor),即向-∞靠齐,也就是取比浮点数结果稍小的最大整数。那么:13/4=3;-13/4=-4;15/4=3;-15/4=-4

  • 四舍五入(Round),即整数结果与浮点数结果的差值不超过0.5;差值为0.5时,取绝对值较大的整数。那么:13/4=3;-13/4=-3;15/4=4;-15/4=-4

  • 向零取整(Truncate),即向0靠齐,也就是舍去小数部分。那么:13/4=3;-13/4=-3;15/4=3;-15/4=-3

而C语言里的整除,采用的就是向零取整(Truncate)。

Utility中如何实现负数取模 

    再来看取模。不管哪种整除操作,都会符合公式:被除数÷除数=商…余数,所以:余数=被除数-除数*商。
那么C语言里取模就是:
13÷4=3…1;-13÷4=-3…-1;13÷-4=-3…1;-13÷-4=3…-1
15÷4=3…3;-15÷4=-3…-3;15÷-4=-3…3;-15÷-4=3…-3

 

规律就是:余数与被除数同符号

看来这四则运算里,除法比其它三项复杂多了

以上是“Utility中如何实现负数取模”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI