首页
学习
活动
专区
工具
TVP
发布

Utility之负数

最近在跟孩子学习表内除法,想到一个问题:C语言里怎样处理负数? 表内除法:12÷4=3 整数除法:13÷4=3…1 整数整除:13/4是等于3吗? 负数:-13%4等于多少?...明明除不尽,又要求结果是整数,一般有这样几种方法: 向上整(Ceiling),即向+∞靠齐,也就是比浮点数结果稍大的最小整数。...向下整(Floor),即向-∞靠齐,也就是比浮点数结果稍小的最大整数。那么:13/4=3;-13/4=-4;15/4=3;-15/4=-4。...而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

1.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

Python负数余总结

Python负数余总结 余数存在正余数和负余数,要了解负余数,需要先了解整原理 17 // 5 = 3 -17//5 = -4 17//-5 = -4 -17//-5 = 3 根据上述的4...个公式,可以看出python的编译器是的整符号位由被除数和除数同时决定,整数的数值是由向下整的,即如果整数的符号位正,则取靠近0的数,如果整数是负数,则取远离0的数或者也可以这样理解:被除数和除数处于...0的一边就往靠0的方向整,如果是处于0的两边就往远离0的方向整。...了解了整原理后,再理解余就比较简单了 17%5 = 2 这个没什么好解释,大家都了解的 -17%5= 3 该等式的被除数和除数处于0的两边,那必然是往远离0的方向余数,2+3 = 5按照公式5

1.4K10

Java余和

抛开高级语言的实现,余运算和运算本身并不完全一致,区别在于对负整数进行商时操作不同。虽然这样说,但是余运算和运算的公式都一样。...通过以下两个操作获取余数或模数: step1、求商:int z = x / y step2、求余数或模数:int result = x – y * z 它们的差别在于,如果z的值是负数且不为整数...– 3 * (-2) == 2 所以大家不要再把余和混为一谈啦!...在Java中,%是余数,的操作是:Math.floorMod,我们可以看一下Java的操作是怎么实现的(以下为java源码,只是我加上了注释): /** *计算 x - z */ public...r--; } return r; } 注:不同的语言,对于%运算符的含义可能是不一样的,比如c、c++、java 为余,而python 发布者

2.1K10

Python中的整除和实例

Python3除法采取的是向下整,即向负无穷方向最接近精确值的整数。...如果希望在Python3中对负数采用向零整的方法计算,可以如下处理: int(4/-3) -1 int(-10/3) -3 二 Python3 中采用%表示运算,结果返回除法的余数...: 21%10 1 3%4 3 但是由于Python采用的是向下整的方式,所以对负数余结果不一样: -21%10 9 -5%4 3 结合前面负数的整除计算,可以理解的结果...-21//10 = -3, -21-(-3)*10 = 9 补充知识:Python中列表索引为的负数时,意义与R不同 之前学的是R, 后来看Python访问索引为负数索引时,感觉不对,后来了解到,原来二者意义是完全不同的...list[-1] = e In [1] list = ["a", "b", "c", "d", "e"] print(list[-1]) e 以上这篇Python中的整除和实例就是小编分享给大家的全部内容了

3.9K20

C语言符号-运算

目录 前言 整 向0整 向-∞整 向+∞整 四舍五入整 汇总 \余 对于正数 对于负数 余和的理解 ---- 前言 ---- 本文主要讲解并真正理解余\运算是怎样的!...0; } 对于负数 示例: int main() { int a = -10; int d = 3; printf("%d\n", a/d); //C语言中是-3,...python是-4 printf("%d\n", a%d);//C语言中是-1,python是2 return 0; } 为什么就有差异了呢?...r的大小,本质是取决于商q的,而商取决于取证规则 由此对于负数”结果的不同,我们分别称之为正余数和负余数 余和的理解 ---- 余:尽可能让商,进行向0:尽可能让商...,向-∞方向整 从而C中%,本质其实是余;Python中%,本质其实是 对任何一个大于0的数,对其进行0向整和-∞整,整方向是一致的,故等价于余 对任何一个小于0的数

2.9K40

% 不是运算符?

为什么我问这个问题,因为我今天才发现不同语言中 % 的含义是不同的,因为我是主学 java 的,一直以为 % 就是,但是我错了。...我们先留着不说,先来看一下余的区别: 余,遵循尽可能让商 向0靠近 的原则,fix(); ,遵循尽可能让商 向负无穷靠近 的原则,floor()。...各个环境下 % 运算符的含义不同,比如 C/OC/C++,Java 中为余,而 Python 则为。 所以我们的疑惑就解开了,因为在 Python 中 % 是,而在 Java 中为求余。...两者的区别就在于是往0整(余)还是负无穷整()。 为什么那个人的回答不全对呢?...因为不是 Python 规定的向负无穷整,而是运算就是往负无穷整,在 Python 中 % 是运算,而在那几个语言中是余运算。 个人理解,如有疏漏请指出。

1.7K20

Java 余 (remain), (mod) 的 区别和运算

范围区别:主要是用于计算机术语中。余则更多是数学概念。 主要的区别在于对负整数进行除法运算时操作不同 那么具体是怎样的不同?...首先需要知道Java中如何余,遵循尽可能让商大的原则 —–余:尽可能让商的绝对值更小 —–如-9rem2,-9/2=-4.5,商为-4,。...余数为-9-(2*-4)=-1 ,遵循尽可能让商小的原则 —–:“向下”的意思就是说尽可能让商更小 —–如-9mod2,-9/2=-4.5,商为-5。...余数为-9-(2*-5)=1 为了方便记忆: a ÷ b = c ··· r a,b 同号 时(a,b>0 || a,b<0),余相同都为r 当a,b 异号时,为 (r + b) ,余为...r 注意:在C/C++, C#, JAVA, PHP这几门主流语言中,’%’运算符都是做余运算,而在 python中的’%’是做运算。

1.7K20

程序员数学基础【三、运算(余运算功能重叠部分)】(Python版本)

主要是用于计算机术语中。余则更多是数学概念。...运算具体实现过程为: 对于整型数a,b来说,运算或者求余运算的方法都是: 1.求 整数商: c = a//b (//在python中表示地板商,/表示float商) 2.计算或者余数: r...= a - c*b Python运算(%)对于正数而言是余数,对于负数则不能笼统地说是余数。...注意,这里的‘余数’就是现实数学中我们所指的余数,-7%4=-1余-3 在python语言环境中 % 运算符代表,-7 % 4=1 例子: print("{0}%{1}={2}".format(...下一章内容: 【程序员数学基础【四、应用-判断奇偶数、判断素数、求两个数的最大公约数、水仙花数】(Python版本)】 【https://blog.csdn.net/feng8403000/article

71520
领券