C语言有以下几种取整方法:

1、直接赋值给整数变量。如:

int i = 2.5; 或 i = (int) 2.5;

这种方法采用的是舍去小数部分

2、C/C++中的整数除法运算符“/”本身就有取整功能(int / int),但是整数除法对负数的取整结果和使用的C编译器有关。

3、使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:

floor(2.5) = 2

floor(-2.5) = -3

4、使用ceil函数。ceil(x)返回的是大于x的最小整数。如:

ceil(2.5) = 3

ceil(-2.5) = -2

floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。

但是在C里面ceil和floor()函数是返回double型,

先在网上发现一个简单的向上取整方法;

这里我们用<>表示向上取整,[]表示向下取整,那么怎么来表示这个值呢?

我们可以证明:

=[(N-1)/M]+1    (0

不失一般性,我们设N=Mk+r(0<=r

1)当r>0时,

左边:===k+=k+1

右边:[(N-1)/M]+1=[(Mk+r-1)/M]+1=[k+(r-1)/M]+1=k+1+[(r-1)/M]=k+1

2)当r=0

左边:=k

右边:[(N-1)/M]+1=[(Mk-1)/M]+1=[(M(k-1)+M-1)/M]+1=[k-1+(M-1)/M]+1=k+[(M-1)/M]=k

命题得证。

有了这个公式,我们在代码里可以这样计算:

int nn=(N-1)/M +1

.

因为‘/‘是往下取整的。

时间: 05-05

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

  1. 单片机c语言除法运算,针对小容量单片机程序优化方式--乘除法篇

    原标题:针对小容量单片机程序优化方式--乘除法篇 目前单片机的市场竞争很激烈,许多应用出于性价比的考虑,选择使用程序存储空间较小(如1K,2K)的小资源8位MCU芯片进行开发.一般情况下,这类MCU没 ...

  2. 啃下这三块最难啃的硬骨头,你将在嵌入式C语言中大放异彩

    啃下这三块最难啃的硬骨头,你将在嵌入式C语言中大放异彩 C语言在嵌入式学习中是必备的知识,审核大部分操作都要围绕C语言进行,而其中有三块"难啃的硬骨头"几乎是公认级别的. ///插 ...

  3. c语言除法结果溢出怎么办,关于C ++:导致除法溢出错误(x86)

    我有一些关于x86或x86_64体系结构上的划分溢出错误的问题.最近,我一直在阅读有关整数溢出的知识.通常,当算术运算导致整数溢出时,将置位FLAGS寄存器中的进位或溢出位.但是很显然,根据本文所述, ...

  4. C++ 笔记(14)— 指针(指针声明、取地址、取值、new/delete、NULL指针、指针运算、指针数组、数组指针、指针传递给函数、从函数返回指针)

    1. 声明指针 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址.就像其他变量或常量一样,您必须在使用指 针存储其他变量地址之前,对其进行声明. 指针变量声明的一般形式为: type * ...

  5. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  6. 用函数求C15的值C语言,南开19春学期(1503、1509、1603、1609、1703)《C语言程序设计》在线作业-1辅导资料.docx...

    南开19春学期(1503.1509.1603.1609.1703)<C语言程序设计>在线作业-1辅导资料.docx 南开19春学期(1503.1509.1603.1609.1703)C语言 ...

  7. C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质...

    C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质 事情的经过是这种,博主在用C写一个简单的业务时使用递归,因为粗心而忘了写return.结果发现返回的结 ...

  8. 【OS学习笔记】二十一 保护模式六:保户模式下操作系统内核如何加载用户程序并运行 对应的汇编代码之内核代码

    本汇编代码对应文章保户模式下操作系统内核如何加载用户程序并运行 中的实际内核代码 对应的主引导扇区代码:主引导扇区代码 对应的用户程序代码:用户程序代码 ;代码清单13-2;文件名:c13_core. ...

  9. 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态

    介绍 这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程 这一章内容较多,内容有Go语言的结构体是什么,怎么声明:Golang方法的调用和声明:go语言面向对象实例,go语言工厂模式: ...

  10. C语言中八进制和16进制怎么表示,原码,反码及补码,C语言按位取反运算符~

    借鉴被人的 C语言中8进制和16进制怎么表示 C语言本身支持的三种输入是: 1. 十进制.比如20,457: 2. 十六进制,以0x开头.比如0x7a: 3. 八进制,以0开头.比如05,0237 所 ...

最新文章

  1. 暑期集训3:几何基础 练习题F:  CodeForces - 1007A ​​​​​​​
  2. android自动化优化工具,Auto Optimizer手机性能自动优化App
  3. Matlab多项式回归实现
  4. iOS开发-iPad侧边栏Tab选项卡切换
  5. 炫界 (795) -(脸兵马俑)_秦兵马俑彩绘脱落背后的秘密: 粘合剂竟然是动物胶与蛋类混合...
  6. mysql报11004_使用mysqli扩展技术查看服务器连接错误报告的方法
  7. 图像分类任务中的tricks总结
  8. 记一次在西部数码上买域名的悲催经历
  9. 使用oracle数据库和MySQL数据库时hibernate的映射文件.hbm.xml的不同
  10. 架构之路 参考MySpace
  11. 数据整理—dplyr包(filter系列)
  12. php 连等赋值,变量赋值时的,多个变量连等的问题
  13. hadoop使用mapreduce统计词频_Hadoop自带WordCount进行词频统计(mapreduce)
  14. 深入浅出统计学-第一章
  15. [置顶] 我也来学习nodejs 没有就自己来 色色实现迷你 MVC
  16. 打开ps显示计算机内存不足怎么办,电脑PS提示内存不足怎么解决
  17. 三星识别文字_Samsung OCR Software三星光学字符识别软件下载_Samsung OCR Software三星光学字符识别软件官方下载-太平洋下载中心...
  18. 微信读书产品体验报告
  19. 渗透测试-红队从资产收集到打点
  20. rk3288 添加系统广播

热门文章

  1. matlab取模与取余
  2. 2022年交叉编译openvpn
  3. jquery-操作元素
  4. thinkphp5 模糊查询
  5. typora基础使用
  6. nginx sendfile 参数解释
  7. 有向图 加最少的边 成为强连通分量的证明 poj 1236 hdu 2767
  8. PHP Date 格式化日期
  9. python中point什么意思_Python如何使用菲奥娜来确定这些多边形中的哪些点?,python,利用,fiona,判定,那些,point,在,polygon,内...
  10. 使用Adplus抓取Dump小结