C++中取余运算的实现

 更新时间:2021年02月23日 10:44:01   作者:我只是一只自动小青蛙  
这篇文章主要介绍了C++中取余运算的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、C++中的整数除法

C++中整数除法和取余用的是truncate除法(舍0取整),而给无符号类型赋值超出表示范围时候用无符号类型等于赋值对无符号类型可以表示的数值总数取余,智力的取余是基于floor除法的(向下取整)。
在整数除法中,Java/C 等语言用的是 truncate 除法,Python 用的是 floor 除法。

1、truncate 除法

向零取整。向 0 方向取最接近精确值的整数,换言之就是舍去小数部分,因此又称截断取整(Truncate)。可以这样理解,先用浮点数除法进行计算,计算结果直接舍去小数部分。
如:

5/-2=-2.5,所以整数除法中5/(-2)=-2
-5/2=-2.5,所以整数除法中-5/2=-2
-5/-2=2.5,所以整数除法中-5/-2=2
5/2=2.5,所以整数除法中5/2=0

2、C++中取余

有上述除法,我们已知a/b=c,而取余操作时a%b=d
那么d的求解方法如下:

d=a-(bc)
5%2=5-(22)=1
(-5)%(-2)=(-5)-((-2)2)=-1
5%(-2)=5-((-2)(-2))=1
(-5)%2=(-5)-(2*(-2))=-1

最后两个式子尤其值得注意

3、floor 除法

理解起来就是向下取整

5/-2=-2.5,所以floor除法中5/(-2)=-3
-5/2=-2.5,所以floor除法中-5/2=-3
-5/-2=2.5,所以floor除法中-5/-2=2
5/2=2.5,所以floor除法中5/2=2

4、C++中无符号变量被赋值超出他表示范围的情况

如我们给定unsigned char a;取值范围为0-255共256个数值,则

a = 5 输出为5 理解为 5-0256
a=257 输出为1 理解为 257-1256
a=-5 输出为251 理解为-5 - (-1256)
a=-257 输出为255 理解为 -257 - (-2256)

到此这篇关于C++中取余运算的实现的文章就介绍到这了,更多相关C++ 取余运算内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 麻将游戏算法深入解析及实现代码

    麻将游戏算法深入解析及实现代码

    这篇文章主要介绍了麻将游戏算法深入解析及实现代码的相关资料,需要的朋友可以参考下
    2017-03-03
  • C语言实现逆波兰式实例

    C语言实现逆波兰式实例

    这篇文章介绍了C语言实现逆波兰式实例,有需要的朋友可以参考一下
    2013-09-09
  • C++ clock()解析如何使用时钟计时的应用

    C++ clock()解析如何使用时钟计时的应用

    本篇文章是对c++中的clock()函数进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • C++中复制构造函数和重载赋值操作符总结

    C++中复制构造函数和重载赋值操作符总结

    这篇文章主要介绍了C++中复制构造函数和重载赋值操作符总结,本文对复制构造函数和重载赋值操作符的定义、调用时机、实现要点、细节等做了总结,需要的朋友可以参考下
    2014-10-10
  • C语言内存对齐实例详解

    C语言内存对齐实例详解

    这篇文章主要介绍了C语言内存对齐,包括内存对其的基本概念及用法,以及注意事项,并以实例形式加以说明,需要的朋友可以参考下
    2014-09-09
  • C++11新特性std::tuple的使用方法

    C++11新特性std::tuple的使用方法

    这篇文章主要介绍了C++11新特性-std::tuple的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • C语言实现纸牌游戏(小猫钓鱼)

    C语言实现纸牌游戏(小猫钓鱼)

    这篇文章主要为大家详细介绍了C语言实现纸牌游戏,小猫钓鱼游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • 基于C++语言实现机动车违章处罚管理系统

    基于C++语言实现机动车违章处罚管理系统

    这篇文章主要介绍了基于C++语言实现机动车违章处罚管理系统的相关资料,需要的朋友可以参考下
    2016-07-07
  • opencv利用视频的前n帧求平均图像

    opencv利用视频的前n帧求平均图像

    这篇文章主要为大家详细介绍了opencv利用视频的前n帧求平均图像,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • C语言SQLite3事务和锁的操作实例

    C语言SQLite3事务和锁的操作实例

    这篇文章主要介绍了C语言SQLite3事务和锁的操作,结合完整实例形式分析了C语言针对SQLite3数据库的事务与锁相关操作技巧,需要的朋友可以参考下
    2017-07-07

最新评论