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++ 取余运算内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言左旋转字符串与翻转字符串中单词顺序的方法

    C语言左旋转字符串与翻转字符串中单词顺序的方法

    这篇文章主要介绍了C语言左旋转字符串与翻转字符串中单词顺序的方法,给出了相关的两道算法题目作为例子,需要的朋友可以参考下
    2016-02-02
  • C++实现洗牌发牌排序功能的示例代码

    C++实现洗牌发牌排序功能的示例代码

    本篇文章主要介绍了C++实现洗牌发牌排序功能的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 利用C语言实现扫雷小游戏

    利用C语言实现扫雷小游戏

    这篇文章主要为大家详细介绍了利用C语言实现扫雷小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • c++ 数据结构map的使用详解

    c++ 数据结构map的使用详解

    这篇文章主要介绍了c++ 数据结构map的使用详解,帮助大家更好的理解和学习使用c++,感兴趣的朋友可以了解下
    2021-04-04
  • C语言实现图的搜索算法示例

    C语言实现图的搜索算法示例

    这篇文章主要介绍了C语言实现图的搜索算法,结合具体实例形式分析了C语言实现图的定义及搜索相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • 详解c/c++赋值函数(重载=号运算符)

    详解c/c++赋值函数(重载=号运算符)

    大家都知道c++里的各种运算符都是用函数实现的,比如=就等号函数,所以当用=给一个对象赋值的时候,实际调用的是=号所对应的=号函数。下面通过本文给大家介绍c/c++赋值函数(重载=号运算符),感兴趣的朋友一起看看吧
    2018-08-08
  • 软件构建工具makefile基础讲解

    软件构建工具makefile基础讲解

    这篇文章介绍了软件构建工具makefile,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • C++ 获取dll当前路径下所有文件

    C++ 获取dll当前路径下所有文件

    本文主要介绍了C++ 获取dll当前路径下所有文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • C语言的数字游戏算法效率问题探讨实例

    C语言的数字游戏算法效率问题探讨实例

    这篇文章主要介绍了C语言的数字游戏算法效率问题探讨实例,需要的朋友可以参考下
    2014-04-04
  • c++11 实现枚举值到枚举名的转换问题

    c++11 实现枚举值到枚举名的转换问题

    这篇文章主要介绍了c++11 实现枚举值到枚举名的转换,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03

最新评论