首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言符号-运算

,在C语言中本质是向0整 当然对于向0整我们也可以使用trunc库函数 (需包含math.h头文件) 示例: #include #include /...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; } 为什么就有差异了呢?...,向-∞方向整 从而C中%,本质其实是余;Python中%,本质其实是 对任何一个大于0的数,对其进行0向整和-∞整,整方向是一致的,故等价于余 对任何一个小于0的数...,对其进行0向整和-∞整,整方向是相反的,故不等价于余 结论: 两个同符号数据参与余,等价于余,不同语言余数相等 两个不符号数据参与余,不等价于余,余数大小需考虑语言整规则

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

Java余和

抛开高级语言的实现,余运算和运算本身并不完全一致,区别在于对负整数进行商时操作不同。虽然这样说,但是余运算和运算的公式都一样。...先给出规则,如果z小于0,且z不为整数(即x没有被y整除),那么: 如果是余:那么z朝0方向整,即:-1.33 => -1 如果是:那么z朝负无穷方向整,即:-1.33 => -2 举个例子:...– 3 * (-2) == 2 所以大家不要再把余和混为一谈啦!...在Java中,%是余数,的操作是:Math.floorMod,我们可以看一下Java的操作是怎么实现的(以下为java源码,只是我加上了注释): /** *计算 x - z */ public...r--; } return r; } 注:不同的语言,对于%运算符的含义可能是不一样的,比如cc++、java 为余,而python为 发布者

2.1K10

C语言简单说】六:运算符以及变量的扩展

┴┴ (╰(`□′)╯( ┴┴ … 这一节我们就来说另外的运算符——运算符(说白了跟余数差不多…<—_-)!!!) 先看看好难懂的定义:运算和余运算两个概念有重叠的部分但又不完全一致。...…(后面太罗嗦就不复制了) 也是一种运算,叫做运算…(貌似有点废话<—_-)!!!)...c=b%a; printf("ba 的值是%d;\n",c); system("pause"); } 我们看c=b%a 就是运算,把运算结果给...c变量,从而再输出出来。...运算其实就是,我们姑且就当作余数。我们看代码我们的b是5,a是1,那么的运算结果等于1,那是因为5除2余1…好了就是那么简单。反正我数学不好=。

97710

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

% 不是运算符?

为什么我问这个问题,因为我今天才发现不同语言中 % 的含义是不同的,因为我是主学 java 的,一直以为 % 就是,但是我错了。...第一步:先求c = a / n,结果是 -2(向负无穷方向舍入) 和 -1(向0方向舍入); 第二步:计算和余数的公式相同,但因 c 的值不同,求时r = 3,求余时r = -7。...总结:当a和n符号一致时,求运算和求余运算所得的c的值一致,因此结果一致。当符号不一致时,结果不一样。求运算结果的符号和n一致,求余运算结果的符号和a一致。...各个环境下 % 运算符的含义不同,比如 C/OC/C++,Java 中为余,而 Python 则为。 所以我们的疑惑就解开了,因为在 Python 中 % 是,而在 Java 中为求余。...因为不是 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
领券