Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Utility之负数取模

Utility之负数取模

作者头像
Taishan3721
发布于 2020-01-02 02:40:13
发布于 2020-01-02 02:40:13
1.6K0
举报
文章被收录于专栏:这里只有VxWorks这里只有VxWorks

最近在跟孩子学习表内除法,想到一个问题:C语言里怎样处理负数取模?

表内除法:12÷4=3 整数除法:13÷4=3…1 整数整除:13/4是等于3吗? 负数取模:-13%4等于多少?13%-4呢?-13%-4呢?

先看看整除。明明除不尽,又要求结果是整数,一般有这样几种方法:

  • 向上取整(Ceiling),即向+∞靠齐,也就是取比浮点数结果稍大的最小整数。那么:13/4=4;-13/4=-3;15/4=4;-15/4=-3
  • 向下取整(Floor),即向-∞靠齐,也就是取比浮点数结果稍小的最大整数。那么:13/4=3;-13/4=-4;15/4=3;-15/4=-4
  • 四舍五入(Round),即整数结果与浮点数结果的差值不超过0.5;差值为0.5时,取绝对值较大的整数。那么:13/4=3;-13/4=-3;15/4=4;-15/4=-4
  • 向零取整(Truncate),即向0靠齐,也就是舍去小数部分。那么:13/4=3;-13/4=-3;15/4=3;-15/4=-3

而C语言里的整除,采用的就是向零取整(Truncate)。

再来看取模。不管哪种整除操作,都会符合公式:被除数÷除数=商…余数,所以:余数=被除数-除数*商。 那么C语言里取模就是: 13÷4=3…1;-13÷4=-3…-1;13÷-4=-3…1;-13÷-4=3…-1 15÷4=3…3;-15÷4=-3…-3;15÷-4=-3…3;-15÷-4=3…-3

规律就是:余数与被除数同符号

看来这四则运算里,除法比其它三项复杂多了

想到一个段子:为什么古龙先生取名字经常用数字,而且多是奇数?例如绝代双骄的轩辕三光、七杀手的龙五、欢乐英雄的燕七、武林外史的朱七七、凤舞九天的宫九、萧十一郎、三少爷的剑的燕十三、碧血洗银枪的无十三、风铃中的刀声的彭十三豆。。。 这样显得很厉害,因为很难除

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java与C语言中取模运算符%的区别对比
在C语言中,取模运算符 % 的主要功能是计算两个整数相除后的余数。具体来说,a % b 表示 a 除以 b 后得到的余数。
CSDN-Z
2025/02/18
900
Java与C语言中取模运算符%的区别对比
【Python】学习笔记day3
Python中支持连续大于或连续等于(链式赋值)的写法,这一点在C语言中是不支持的,如:
修修修也
2024/04/01
1060
【Python】学习笔记day3
C++中负数取余的规则
在C++中,对于整数类型(int)进行除法运算并取余数时,当被除数或除数为负数时,可能会出现一些意料之外的结果。
楚客追梦
2024/08/28
5440
python取整符号_python 取整「建议收藏」
(1)向下取整向下取整很简单,直接使用int()函数即可,如下代码(python 2.7.5 idle) a = 3.75 int(a) 3 (2)四舍五入第二种就是对数字进行四舍五入,具体的看下面的代码: a=3.25; b=3.75 round(a); round(b) 3.0 4.0 (3)向上取整 但三种,就是向上取整,也就是我这次数据处理中需要的,由于之前没在python中用到…
全栈程序员站长
2022/08/01
5.1K0
python取整符号_python 取整「建议收藏」
python中取整数的几种方法(python怎么取整)
总结:math.ceil()严格遵循向上取整,所有小数都是向着数值更大的方向取整,不论正负数都如此
全栈程序员站长
2022/07/31
5.6K0
Python基础之运算符操作
在Python中,运算符的作用就是用于执行各种的运算操作,常见的运算符有算数运算符、比较运算符、逻辑运算符、赋值运算符、成员运算符、身份运算符等。下面我们就来看看在Python中这些运算的详细操作。
xiangzhihong
2024/05/25
1061
浮点数怎样才能没有误差?
我们都知道,任何数据到了计算机中都只可能是二进制,浮点数也没有例外,正因为如此,有些浮点数在存储过程中会产生精度丢失,比如 0.2。那么有没有什么方式来阻止浮点数的精度丢失,其实很简单,自己实现一个浮点数的类然后定义各种方法不就行了吗?这确实可行,但是就没有别人帮我实现好吗?其实早就有了,它就是模块 decimal。
不可言诉的深渊
2021/03/10
1.1K0
基础野:细说有符号整数
Breif                                本来只打算理解JS中0.1 + 0.2 == 0.30000000000000004的原因,但发现自己对计算机的数字表示和运算十分陌生,于是只好恶补一下。  本篇我们一起来探讨一下基础——有符号整数的表示方式和加减乘除运算。 Encode                                 有符号整数可表示正整数、0和负整数值。其二进制编码方式包含 符号位 和 真值域。   我们以8bit的存储空间为例,最左1bit为符号
^_^肥仔John
2018/01/18
1.9K0
《夯实Python基础》(1)
数字是几乎在所有计算机语言中都必然存在一种基本的数据类型。在Python中,数字也是相当典型和普遍存在的。
高一峰
2020/09/22
4220
物联网工程师技术之C语言运算符
大家学习了上一章中介绍的变量和常量,现在已经可以将数据保存在程序中了,下一步的工作就是操作并利用保存的数据。本章将介绍C语言中的运算符,在这些运算符的帮助下,可以完成变量赋值、变量比较、数学计算、组合逻辑关系等基本的变量操作。此外,本章还将简单介绍两种控制程序流程的方法:选择和循环。经过本章的学习之后,大家就可以编写一些简单的小程序了。
张哥编程
2024/12/13
860
物联网工程师技术之C语言运算符
PC逆向之代码还原技术,第六讲汇编中除法代码还原以及原理第一讲,除数是2的幂
除法,在汇编中是 DIV 指令 跟 IDIV指令,跟乘法一样.指令周期时间长.所以也必须进行优化. 但是除法的优化有很多原理.也就是很复杂. 逆向工作人员.也要搞清楚除法才算是真正的入了逆向的的小门. 除法搞不定.以后代码还原.等等.自己根本还原不了.有人说 可以使用IDA静态分析工具. F5插件. 我可以告诉你 F5搞不定除法的.会给你还原的乱七八糟.还不如看汇编.所以这也是我们必须搞定的.
IBinary
2019/05/25
8300
C语言运算符详解
C语言包含多种运算符,如算术、关系、逻辑、位、赋值和条件等,它们用于执行各种计算和操作,如加减乘除、比较、逻辑判断、位运算、赋值和条件控制等,是C语言编程中不可或缺的元素。
鲜于言悠
2024/05/24
1060
Python全网最全基础课程笔记(四)——基本数据类型
基本数据类型是Python中最基础的数据类型,它们用于存储单个值。Python中的基本数据类型包括:
小白的大数据之旅
2024/11/20
1790
Python全网最全基础课程笔记(四)——基本数据类型
【重学 MySQL】十六、算术运算符的使用
在 MySQL 中,算术运算符用于执行数学运算,如加法、减法、乘法、除法和取模(求余数)等。这些运算符在数据库管理和查询中非常有用,特别是在需要对数据进行计算或转换时。
用户11332765
2024/10/28
1390
【重学 MySQL】十六、算术运算符的使用
Python 取模运算符
本文最先发布在:https://www.itcoder.tech/posts/python-modulo-operator/
雪梦科技
2020/06/22
11.8K0
JavaScript-算数运算符
(1)布尔值会自动转换为 数值,false 转换为 0,true 转换为 1,然后再相加。
WEBING
2019/02/26
1.2K0
JavaScript-算数运算符
每天五分钟学Python,数字和字符串的基本用法
今天继续我们的Python基础内容,上一次我们对Python做了一个简单的介绍,涉及Python的一些语言特性、必备常识、IDE的使用等等,今天我们来介绍Python的一些具体的语法。
TechFlow-承志
2022/08/26
3740
每天五分钟学Python,数字和字符串的基本用法
python中ndarray除_Numpy 基本除法运算和模运算
基本算术运算符+、-和*隐式关联着通用函数add、subtract和multiply
用户7886150
2021/01/07
3.5K0
[零基础学python]啰嗦的除法
除法啰嗦的,不仅是python。 整数除以整数 看官请在启动idle之后,练习下面的运算: >>> 2/5 0 >>> 2.0/5 0.4 >>> 2/5.0 0.4 >>> 2.0/5.0 0.4
py3study
2020/01/05
1.9K0
计算机组织结构(四) 浮点数四则运算
📚 文档目录 合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式 浮点数的加减运算 X=X_S \times 2^{X_E},Y=Y_S \times 2^{Y_E} 步骤 检查是否为零 阶码对齐,尾数移位 对尾数加或减 标准化结果 溢出判断 对阶 求阶差\Delta E=\begin{cases} =0,已经对齐\\\ne0,\begin{cases}大的向小的对齐:减小较r大的阶码,同
Rikka
2022/01/11
8310
计算机组织结构(四) 浮点数四则运算
相关推荐
Java与C语言中取模运算符%的区别对比
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档