如何在C++项目中实现一个取余运算
如何在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=25/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=25/2=2.5,所以floor除法中5/2=2
4、C++中无符号变量被赋值超出他表示范围的情况
如我们给定unsigned char a;取值范围为0-255共256个数值,则
a = 5 输出为5 理解为 5-0256a=257 输出为1 理解为 257-1256a=-5 输出为251 理解为-5 - (-1256)a=-257 输出为255 理解为 -257 - (-2256)
看完上述内容,你们掌握如何在C++项目中实现一个取余运算的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!
推荐阅读
-
C++之list容器模拟怎么实现
C++之list容器模拟怎么实现这篇“C++之list容器模拟怎么...
-
C++深浅拷贝及简易string类怎么实现
C++深浅拷贝及简易string类怎么实现这篇“C++深浅拷贝及简...
-
C++之list容器如何使用
C++之list容器如何使用今天小编给大家分享一下C++之list...
-
C++内存对齐如何实现
C++内存对齐如何实现本篇内容介绍了“C++内存对齐如何实现”的有...
-
C/C++如何获取CAN信号
C/C++如何获取CAN信号本篇内容主要讲解“C/C++如何获取C...
-
C/C++程序链接与反汇编工具objdump如何使用
C/C++程序链接与反汇编工具objdump如何使用这篇文章主要介...
-
C++聚合体初始化的方法是什么
C++聚合体初始化的方法是什么本篇内容介绍了“C++聚合体初始化的...
-
C++引用如何使用
C++引用如何使用这篇文章主要介绍“C++引用如何使用”的相关知识...
-
C++类和对象之封装及class与struct的区别是什么
-
C++怎么实现softmax函数
C++怎么实现softmax函数本篇内容主要讲解“C++怎么实现s...
