Utility中如何实现负数取模

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

西乌珠穆沁ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

最近在跟孩子学习表内除法,想到一个问题: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中如何实现负数取模”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


分享名称:Utility中如何实现负数取模
新闻来源:http://azwzsj.com/article/igshoc.html