[深入浅出C语言]理解取整、取余和取模

C语言符号-取余\取模运算 目录 前言 取整 向0取整 向-∞取整 向+∞取整 四舍五入取整 汇总 取模\余 对于正数取模 对于负数取模 取余和取模的理解 前言 本文主要讲解并真正理解取余\取模运算是怎样的! 取整 首先取整有四种类型: 向0取整 向-∞取整 向+∞取整 四舍五入取整 向0取整 示例: int main() { //本质是向0取整 int i = -2.9; int j = 2.9; printf("%d\n", i); //结 阅读详情

关于C语言的取模运算,也许你只了解正数取模,而从未接触过负数取模,本文就来分享一波C语言取整、取模和取余的个人学习经验与心得,希望对你有所帮助。

笔者水平有限,难免存在纰漏,欢迎指正交流。

关于取整

你真的了解取整么?那你知道有几种取整方式吗?

除了最常见的向0取整以外其实是是有很多的取整方式的。

向0取整

C语言中整数除法就是遵循这一取整方式。下面代码中浮点数字面量拷贝赋值时发生了隐式类型转换,向0取整。

#include<stdio.h>
int main()
{
    int i = -2.9;
    int j = 2.9;
    printf("%d\n", i); //结果是-2
    printf("%d\n", j); //结果是2
    
    return 0;
}

 有一个trunc取整函数(C99),同作用。

​比如:

#include<math.h>
#include<stdio.h>
int main()
{
    int i = -2.9;
    int j = 2.9;
    printf("%f\n", trunc(i)); //结果是-2
    printf("%f\n", trunc(j)); //结果是2
    
    return 0;
}

floor取整

本质是向-∞取整,注意输出格式要不然看不到结果,比如:

#include <stdio.h>
#include <math.h> //因为使用了floor函数,需要添加该头文件
int main()
{
    printf("%.1f\n", floor(-2.9)); //结果是-3
    printf("%.1f\n", floor(-2.1)); //结果是-3
    printf("%.1f\n", floor(2.9)); //结果是2
    printf("%.1f\n", floor(2.1)); //结果是2
    
    return 0;
}

​

ceil取整

本质是向+∞取整,注意输出格式要不然看不到结果,比如:

#include <stdio.h>
#include <math.h>
int main()
{
    printf("%.1f\n", ceil(-2.9)); //结果是-2
    printf("%.1f\n", ceil(-2.1)); //结果是-2
    printf("%.1f\n", ce
关于c语言中取商和取整应用 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。 阅读详情

相关推荐

深度理解取整&取余&取模运算

在编程的学习当中,我们会经常行的使用这些操作在表达式计算,但是你在使用当中,你真的理解了吗???或者说是你完全学会使用了!! 在这篇博客当中,或许会出现错误,希望大家理解,目前还在学习当中,发现错误或不足之处请大家斧正!! 目录 一、取整 二、取余与取模 一、取整 先写一个简单的代码在引入: C语言代码:在前面的代码中,我也解释过,为什么在定义变量中,int类型赋值浮点型不报错误, 在定义变量时,类型只是计算机用来判断内存开辟的空间大小,不会发生类型不匹配的原因,注意在取出数据的时候,如

qq_63512251的博客 7018

C语言整型除法与浮点数运算:从原理到实战的避坑指南

在C语言编程中,数据类型与运算规则是理解程序行为的基础。整型除法遵循向零截断原则,结果只保留整数部分,这常导致初学者在计算平均值或百分比时出现预期外的结果。其原理源于CPU对整数运算的硬件支持,运算效率高但会丢失精度。浮点数则采用IEEE 754标准进行近似表示,虽能处理小数,但存在固有的精度限制和舍入误差,直接比较相等可能失败。这两种数据类型的正确运用,对于实现精确的数值计算、金融处理及科学仿真等技术场景至关重要。本文聚焦于整型除法和浮点型这两个核心概念,通过剖析其底层机制与典型陷阱,帮助开发者掌握类型转

weixin_32050773的博客 310

很多学C语言的人不知道的事儿,小数是如何存储的?

小数如何存储 无论是单精度还是双精度在存储中都分为三个部分: 符号位(Sign) : 0代表正,1代表为负 指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储 尾数部分(Mantissa):尾数部分 其中float的存储方式如下图所示: 而双精度的存储方式为: float和double类型的数据在内存中的保存形式是一样...

莫影 is Joker 490

艾德克斯电子负载IT8510维修

2年前从朋友那收了这台艾德克斯电子负载,收来的时候上面的编码器就不好用,就是旋转的时候一会增加一会减小这种现象,不过其他功能都是正常的,自己也就将就用这。直到昨天,电子负载开机发现空载的时候电压不是0,开始有mV级的跳动,心想这个不正常。又测试了一下恒流功能,已经不能正常工作了。

mainbanp 4651

视觉惯性SLAM系列——ORB-SLAM3的整体介绍及各个线程的功能(五)

跟踪线程(Tracking Thread)作用:负责处理每一帧图像,进行相机位姿的估计和定位。它首先执行与前一帧图像的特征匹配,然后通过仅运动(motion-only)BA(Bundle Adjustment)优化位姿。如果跟踪失败,它会尝试在所有地图中进行重定位。此外,跟踪线程还负责决定何时插入新的关键帧,以及何时将关键帧从局部地图中移除。详细介绍见局部建图线程(Local Mapping Thread)作用:管理局部地图,向活跃地图添加关键帧和点,移除多余的关键帧和点。

曾经也曾立志 1004

Python中的串口通信库pyserial(基础)

pyserial是一个跨平台的库,可以在多个操作系统上使用,包括Windows、Linux和MacOS。:flushInput方法用于清除输入缓冲区中的所有数据,flushOutput方法用于清除输出缓冲区中的所有待发送数据。:PySerial允许在创建Serial对象后,通过修改对象的属性来设置串口参数,如波特率、数据位、校验位和停止位。同时,也提供了方法或属性来检查串口的状态,如是否已打开。:sendBreak方法用于向串口发送一个BREAK信号,这可以用于向连接的设备发送一个中断或重置信号。

weixin_44217158的博客 1万+

【EMC专题】为什么芯片规格书ESD性能中看不到MM(机器放电模型)

器件级ESD包括三种类型,HBM人体放电模型、MM机械放电模型和CDM元件充电模型。但在芯片规格书中为什么只见到HBM模型与CDM模型,却没有看到MM模型的数据?

一点硬件 450

AFL源码分析之afl-as.c详细注释

前言 afl-as注释好了,明白了是如何进行插桩的,以及插在哪里 本文主要参考Sakura大佬文章:https://eternalsakura13.com/2020/08/23/afl/ 编写不易,如果能够帮助到你,希望能够点赞收藏加关注哦Thanks♪(・ω・)ノ /* Copyright 2013 Google LLC All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); y

hollk’s blog 2172

yolov5 FPGA实现及verilog代码仿真

本文介绍了一种基于FPGA的卷积神经网络加速器设计,采用混合架构实现网络功能。该系统将训练和图像预处理等复杂计算保留在PC端执行,仅将主干网络部署在FPGA上。由于片上资源限制,建议通过外接DDR存储扩展容量。文章提供了完整的Verilog HDL源码,包括卷积单元(convUnit)、卷积层(convLayerSingle)和处理单元(processingElement)等核心模块,均已通过仿真验证。该设计采用流水线结构,使用浮点运算单元实现卷积计算,支持32x32图像输入和5x5卷积核处理。系统架构图中

QQ_778132974的博客 576

DeepSeek揭秘:构建高效反洗钱智能监控系统的全流程与代码实例

在金融领域,反洗钱(AML)是一项至关重要的任务。随着金融交易的复杂性和规模不断增长,传统的手工监控方法已无法满足现代金融系统的需求。因此,开发一个智能监控系统来自动识别和报告可疑交易变得尤为重要。本文将详细介绍如何使用DeepSeek技术构建一个高效的反洗钱智能监控系统,并提供相关的代码实例。

理论都是虚的,代码才是王道。 884

SAP_FI模块_固定资产期初导入全流程(含导入代码)

SAP 期初导入资产主数据以及金额相关的操作全流程记录,包含了批导程序的代码,以及错误记录

风沙的博客 1404

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: 【数据结构之红黑树】深入原理与实现
下一篇: TCP:当初取代NCP,如今害怕被取代
Linux服务器开发
博客等级 码龄7年 610粉丝 589原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值