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

您可能感兴趣的文章:Java实现Fibonacci(斐波那契)取余的示例代码ASP(VBScript)中整除和取余

  • 本文相关:
  • 麻将游戏算法深入解析及实现代码
  • c语言实现逆波兰式实例
  • c++ clock()解析如何使用时钟计时的应用
  • c++中复制构造函数和重载赋值操作符总结
  • c语言内存对齐实例详解
  • c++11新特性std::tuple的使用方法
  • c语言实现纸牌游戏(小猫钓鱼)
  • 基于c++语言实现机动车违章处罚管理系统
  • opencv利用视频的前n帧求平均图像
  • c语言sqlite3事务和锁的操作实例
  • C语言里面%求余是怎么运算的?
  • c语言中怎样取余数
  • c语言中怎样取余数?
  • C语言中取余…
  • C语言中%取余数的问题
  • C语言中求余的运算
  • c语言中的取余运算
  • C语言求余数运算
  • c语言的取余运算符%。
  • 计算机C语言中怎样进行求余运算
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全c#教程vbvb.netc 语言java编程delphijavaandroidiosswiftscala易语言汇编语言其它相关首页java实现fibonacci(斐波那契)取余的示例代码asp(vbscript)中整除和取余麻将游戏算法深入解析及实现代码c语言实现逆波兰式实例c++ clock()解析如何使用时钟计时的应用c++中复制构造函数和重载赋值操作符总结c语言内存对齐实例详解c++11新特性std::tuple的使用方法c语言实现纸牌游戏(小猫钓鱼)基于c++语言实现机动车违章处罚管理系统opencv利用视频的前n帧求平均图像c语言sqlite3事务和锁的操作实例c语言程序设计50例(经典收藏)c语言10个经典小程序c语言字符串操作总结大全(超详细c语言文件操作函数大全(超详细)c语言运算符优先级列表(超详细)c语言字符数组与字符串的使用详解c语言/c++中如何产生随机数c++中的string常用函数用法总结深入理解c++中public、protectedc++常用字符串分割方法实例汇总c语言 字符串转大写的简单实例c++删除链表中间节点的方法c数据结构循环链表实现约瑟夫环c语言实现洗牌与发牌游戏c++中const用于函数重载的示例代码c语言关于注释的知识点总结错误:sem_union的存储大小未知问题的解决详解c语言中的ttyname()函数和isatty()函c++中vector和map的删除方法(推荐)c++用指针交换数组的实例讲解
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved