c语言除法计算和取模计算
下面的题目你可以全部都做对么:
- 3/4=?
- 3%4=?
- 3/-4=?
- 3%-4=?
- -3/4=?
- -3%4=?
- -3/-4=?
- -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语言除法计算和取模计算相关推荐
- c语言中的取模运算符_C语言除法算法和取模运算的实现(多种算法,多种思路)...
对计算机来说,除法与求模是整数算术运算中最复杂的运算.相对其他运算(如加法与减法)来说,这两种算法的执行速度非常慢.例如,ARM 硬件上不支持除法指令,编译器调用 C 库函数来实现除法运算.直接利用 ...
- 乘方取模计算(模幂计算)
乘方取模计算也称为模幂计算,在密码系统中经常使用,是不可缺少的. 使用本程序可以解HDU2035,只需要考虑输入和输出. /** 乘方取模** 已知给定的正整数a.n和m,计算x的值,a^n = x ...
- 演示多组int,float,double的数与 2,2.0f,2.0d的除法运算和取模运算,如有兴趣,可自行分析对比结果
因为各种基本数据类型所占用的存储空间各不相同,所以在进行各种计算时,有可能存在精度题.计算机的操作要在内存中进行,而内存容量有限:另一方面,持久化存储设备的存储空间也有限,内存中的数据可能需要持久化保 ...
- 解析java中的除法运算和取模运算
解析java中的除法运算和取模运算 A.除法运算 a.含义及其语法 除法运算就是被除数除以除数的这一过程 语法: 被除数/除数 注意:除数不能为0,且被除数和除数都得是数字 b.应用场景 1.和取模运 ...
- 关于快速幂取模计算的详细解释
首先对于幂和取模想必大家都不是很陌生,幂即一个数的多少次方,取模即取余运算: 下面咱们进行一个数的幂取模运算的最容易想到的方式: a//底数 b//幂指数 c//取模数 //算法一: int ans= ...
- c语言x的2取模_c语言如何取模运算
展开全部 取模运算符是% ,对负数32313133353236313431303231363533e4b893e5b19e31333366306438取模不一定都是正数. 例如: 例一:int mai ...
- java 除 取模_除法运算和取模
package review20140420; /* * 除法和取模(整数除以整数,会出现除数不能为零的异常) */ public class Test2 { //程序的入口 public stati ...
- 8x8点阵c语言程序,8X8点阵取模软件下载
8X8点阵取模软件正式版是款功能相当不错.便捷实用的点阵的字符提取辅助软件,8X8点阵取模软件正式版页面简洁美观.功能齐全,采用了软件的字库和分离存放的方式.8X8点阵取模软件是款非常值得 ...
- c语言除法向下取整是加一么,【向上取整/向下取整】C语言向上或向下取整 函数...
C语言有以下几种取整方法: 1.直接赋值给整数变量.如: int i = 2.5; 或 i = (int) 2.5; 这种方法采用的是舍去小数部分 2.C/C++中的整数除法运算符"/&qu ...
- 多项式除法,多项式取模
多项式除法 给定一个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 ...
最新文章
- “秒杀”谷歌!这个生物科研工具,可爬取全网中外文献
- 大一计算机期末考试高数试卷,高等数学大一期末试卷(A)及答案
- 【SQLServer】【恢复挂起的解决方案】附加文件时候的提示“无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。 ”【数据库恢复】...
- C#实现文本文件合并
- 学习计划2016//12/12
- 《25项最优时间管理工具与技巧》
- 不可摸数http://acm.hdu.edu.cn/showproblem.php?pid=1999
- D3可视化:(2)Bar Chart with D3js
- 大疆aeb连拍_大疆 AIR2 玩机(一)包围曝光及后期处理
- [转]深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)...
- 严重抗议:被砍了个尾巴
- js java 乱码_js和java 中文乱码
- MAX485芯片介绍(MAX485ESA+T,半双工RS422和RS485串口收发传输芯片,2.5Mbps传输速率。5V逻辑电平)
- 2019全国大学生信息安全竞赛—Web
- JAVA毕业设计公立医院绩效考核系统计算机源码+lw文档+系统+调试部署+数据库
- AJAX的教程(一)
- 2019年6月数据库流行度排行榜出炉
- 二叉树线索化仍不能解决的两个问题及原因
- 魔兽世界台服显示无法连接服务器,魔兽世界台服服务器爆满 部分服务器已锁定 - 178魔兽世界专区...
- Nodejs——身份证验证