下面的题目你可以全部都做对么:

  1. 3/4=?
  2. 3%4=?
  3. 3/-4=?
  4. 3%-4=?
  5. -3/4=?
  6. -3%4=?
  7. -3/-4=?
  8. -3%-4=?

如果你无法全部准确的做出请看下面的解答

除法的取整分类
除法的取整分为三类:向上取整、向下取整、向零取整。
1、向上取整:向+∞方向取最接近精确值的整数。在这种取整方式下,6/5=2 6/(-5)=-1 6/4=2 6/(-3)=-2
2、向下取整:向-∞方向取最接近精确值的整数。在这种取整方式下,6/5=1 6/(-5)=-2 6/4=1 6/(-3)=-2
3、向零取整:向0方向取最接近精确值的整数,就是舍去小数部分,因此又称截断取整。在这种取整方式下,6/5=1 6/(-5)=-1 6/4=1 6/(-3)=-2
C语言使用向零取整方式,知道如何取整,我们就可以知道如何取模了

有符号之间的出具处理例程如下所示:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <sys/time.h>
#include <assert.h>
//int:4
//long int :8
int main(void)
{int i,j,k;int ret;i = 3;j = 4;k = 5;ret = i % j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i % k;printf("%s %d %d \n",__func__,__LINE__,ret);ret = k % j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i / j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i / k;printf("%s %d %d \n",__func__,__LINE__,ret);ret = k / j;printf("%s %d %d \n",__func__,__LINE__,ret);printf("************************** \n");i = 3;j = -4;k = -5;ret = i % j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i % k;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i / j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i / k;printf("%s %d %d \n",__func__,__LINE__,ret);printf("************************** \n");i = -3;j = 4;k = 5;ret = i % j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i % k;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i / j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i / k;printf("%s %d %d \n",__func__,__LINE__,ret);printf("************************** \n");i = -3;j = -4;k = -5;ret = i % j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i % k;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i / j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i / k;printf("%s %d %d \n",__func__,__LINE__,ret);printf("************************** \n");return 0;
}

结果如图所示:

有符号和无符号之间的处理:

对于无符号和有符号之间的除法运算,首先会将有符号的数据转换为无符号的数据进行处理,在计算机中负数是用补码表示的,所以需要将负数转换为补码之后进行计算,转换方法可以参考博客https://blog.csdn.net/qq_37600027/article/details/83961882

有符号和无符号数据之间的例程如下所示:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <sys/time.h>
#include <assert.h>
//int:4
//long int :8
int main(void)
{int ret,j,k;unsigned int i;i = 3;j = 4;k = 5;ret = i % j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i % k;printf("%s %d %d \n",__func__,__LINE__,ret);ret = k % j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i / j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i / k;printf("%s %d %d \n",__func__,__LINE__,ret);ret = k / j;printf("%s %d %d \n",__func__,__LINE__,ret);printf("************************** \n");i = 3;j = -4;k = -5;ret = i % j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i % k;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i / j;printf("%s %d %d \n",__func__,__LINE__,ret);ret = i / k;printf("%s %d %d \n",__func__,__LINE__,ret);printf("************************** \n");ret = k % i;printf("%s %d %d \n",__func__,__LINE__,ret);ret = k / i;printf("%s %d %d \n",__func__,__LINE__,ret);printf("************************** \n");return 0;
}

程序结果为:

c语言除法计算和取模计算相关推荐

  1. c语言中的取模运算符_C语言除法算法和取模运算的实现(多种算法,多种思路)...

    对计算机来说,除法与求模是整数算术运算中最复杂的运算.相对其他运算(如加法与减法)来说,这两种算法的执行速度非常慢.例如,ARM 硬件上不支持除法指令,编译器调用 C 库函数来实现除法运算.直接利用 ...

  2. 乘方取模计算(模幂计算)

    乘方取模计算也称为模幂计算,在密码系统中经常使用,是不可缺少的. 使用本程序可以解HDU2035,只需要考虑输入和输出. /** 乘方取模** 已知给定的正整数a.n和m,计算x的值,a^n = x ...

  3. 演示多组int,float,double的数与 2,2.0f,2.0d的除法运算和取模运算,如有兴趣,可自行分析对比结果

    因为各种基本数据类型所占用的存储空间各不相同,所以在进行各种计算时,有可能存在精度题.计算机的操作要在内存中进行,而内存容量有限:另一方面,持久化存储设备的存储空间也有限,内存中的数据可能需要持久化保 ...

  4. 解析java中的除法运算和取模运算

    解析java中的除法运算和取模运算 A.除法运算 a.含义及其语法 除法运算就是被除数除以除数的这一过程 语法: 被除数/除数 注意:除数不能为0,且被除数和除数都得是数字 b.应用场景 1.和取模运 ...

  5. 关于快速幂取模计算的详细解释

    首先对于幂和取模想必大家都不是很陌生,幂即一个数的多少次方,取模即取余运算: 下面咱们进行一个数的幂取模运算的最容易想到的方式: a//底数 b//幂指数 c//取模数 //算法一: int ans= ...

  6. c语言x的2取模_c语言如何取模运算

    展开全部 取模运算符是% ,对负数32313133353236313431303231363533e4b893e5b19e31333366306438取模不一定都是正数. 例如: 例一:int mai ...

  7. java 除 取模_除法运算和取模

    package review20140420; /* * 除法和取模(整数除以整数,会出现除数不能为零的异常) */ public class Test2 { //程序的入口 public stati ...

  8. 8x8点阵c语言程序,8X8点阵取模软件下载

          8X8点阵取模软件正式版是款功能相当不错.便捷实用的点阵的字符提取辅助软件,8X8点阵取模软件正式版页面简洁美观.功能齐全,采用了软件的字库和分离存放的方式.8X8点阵取模软件是款非常值得 ...

  9. c语言除法向下取整是加一么,【向上取整/向下取整】C语言向上或向下取整 函数...

    C语言有以下几种取整方法: 1.直接赋值给整数变量.如: int i = 2.5; 或 i = (int) 2.5; 这种方法采用的是舍去小数部分 2.C/C++中的整数除法运算符"/&qu ...

  10. 多项式除法,多项式取模

    多项式除法 给定一个nnn次多项式F(x)F(x)F(x)和mmm次多项式G(x)G(x)G(x),要求R(x),Q(x)R(x), Q(x)R(x),Q(x),满足F(x)=R(x)G(x)+Q(x ...

最新文章

  1. “秒杀”谷歌!这个生物科研工具,可爬取全网中外文献
  2. 大一计算机期末考试高数试卷,高等数学大一期末试卷(A)及答案
  3. 【SQLServer】【恢复挂起的解决方案】附加文件时候的提示“无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。 ”【数据库恢复】...
  4. C#实现文本文件合并
  5. 学习计划2016//12/12
  6. 《25项最优时间管理工具与技巧》
  7. 不可摸数http://acm.hdu.edu.cn/showproblem.php?pid=1999
  8. D3可视化:(2)Bar Chart with D3js
  9. 大疆aeb连拍_大疆 AIR2 玩机(一)包围曝光及后期处理
  10. [转]深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)...
  11. 严重抗议:被砍了个尾巴
  12. js java 乱码_js和java 中文乱码
  13. MAX485芯片介绍(MAX485ESA+T,半双工RS422和RS485串口收发传输芯片,2.5Mbps传输速率。5V逻辑电平)
  14. 2019全国大学生信息安全竞赛—Web
  15. JAVA毕业设计公立医院绩效考核系统计算机源码+lw文档+系统+调试部署+数据库
  16. AJAX的教程(一)
  17. 2019年6月数据库流行度排行榜出炉
  18. 二叉树线索化仍不能解决的两个问题及原因
  19. 魔兽世界台服显示无法连接服务器,魔兽世界台服服务器爆满 部分服务器已锁定 - 178魔兽世界专区...
  20. Nodejs——身份证验证

热门文章

  1. 每个极客都应该知道的Linux命令
  2. 联想微型计算机q190怎么拆,联想q190迷你小主机上网怎?
  3. 通信基础 8 —— MIMO / 3GPP / UMI
  4. [lammps安装教程]lammps串行版安装教程
  5. HTML5数据可视化第四弹:交互式地铁线路图
  6. Javascript带参跳转页面
  7. (转)关于第一行代码中NotificationCompat失效的解决方法
  8. Linux下最适合程序员的编程字体
  9. 小型超市管理系统(JAVA,JSP,SSH,MYSQL)
  10. 【Cmake】Ctest测试工具