取模与取余 - CSDN
  • 取模取余的区别

    万次阅读 多人点赞 2018-08-16 21:43:13
    两者的区别只有一个: ...从上面的区别可以总结出,取余(rem)和取模(mod)在被除数、除数同号时,结果是等同的,异号时会有区别。下面来看一些例子 取模5 mod 3 = 2 -5 mod 3 = 1 5 mod -3 = -1

    其实取模和取余在目标上是一致的,但是因为语言对取余和取模上定义的不同,导致得到的结果不同。

    对取余和取模定义不同的语言中,两者的不同点只有一个

    • 取余运算在计算商值向0方向舍弃小数位
    • 取模运算在计算商值向负无穷方向舍弃小数位

    同时,也可以这样理解:

    • 取余,遵循尽可能让商大的原则
    • 取模,遵循尽可能让商小的原则

    从上面的区别可以总结出,取余(rem)和取模(mod)在被除数、除数同号时,结果是等同的,异号时会有区别,所以要特别注意异号的情况

    下面来看一些例子

    1. 取模

      • 5 mod 3 = 2
      • -5 mod 3 = 1
      • 5 mod -3 = -1
      • -5 mod -3 = -2
    2. 取余

      • 5 rem 3 = 2
      • -5 rem 3 = -2
      • 5 rem -3 = 2
      • -5 rem -3 = -2

    经过测试,在C/C++, C#, JAVA, PHP这几门主流语言中,’%’运算符都是做取余运算,而在python中的’%’是做取模运算。

    此外,余数在数学中的定义是始终大于等于0的,而对于某些编程语言的取余运算不是按照上面的定义来执行的,因此才会出现余数小于0的情况。

    说了这么多,我们在使用取模(取余)运算时要注意的地方有一个,当除数和被除数出现异号的情况时,程序移植的时候要特别小心,因为不同语言对取模和取余的定义可能是不同的。

    部分参考:http://blog.csdn.net/chensilly8888/article/details/42834697

    展开全文
  • 取余取模的区别讲解

    千次阅读 2019-10-14 18:18:15
    假如有两个数:amod(b)a%b,b为正整数,一种叫a对b取模,另一个叫a对b取余,两种叫法有什么区别呢?通常情况下,取模运算也叫取余运算,它们返回的结果都是一个数对另一个数的余数,区别在于当a是一个负数时,两者...

    假如有两个数:amod(b)与a%b,b为正整数,一种叫a对b取模,另一个叫a对b取余,两种叫法有什么区别呢?通常情况下,取模运算也叫取余运算,它们返回的结果都是一个数对另一个数的余数,区别在于当a是一个负数时,两者得到的结果是不同的(这里a=0没有意义,b<=0,也不予讨论),取余的结果是有正负的,而取模没有,所以这里就好比我们对a不断的加上b直到a>0,再对b取模,所以我们在c/c++取模的时候就是结尾处加上b在取模,防止出现结果为负的情况。

    这里我们用Java举例验证

    代码:

    import java.util.Scanner;
    import java.io.BufferedInputStream;
    import java.math.*;
    
    public class Main {
    	public static void main(String[] agrs) {
    		Scanner cin = new Scanner(new BufferedInputStream(System.in));
    		BigInteger a,b,n,m;
    		a=BigInteger.valueOf(-11);
    		b=BigInteger.valueOf(4);
    		n=BigInteger.valueOf(-14);
    		m=BigInteger.valueOf(4);
    		System.out.println("第一次测试结果;");
    		System.out.println("取余结果是:"+a.remainder(b));
    		System.out.println("取模结果是:"+a.mod(b));
    		System.out.println("第二次测试结果");
    		System.out.println("取余结果是:"+n.remainder(m));
    		System.out.println("取模结果是:"+n.mod(m));
    	}
    }

    结果 

    通过结果可以看出取余可以为负,取模是在取余的基础上再加上模数在取模

    展开全文
  • 取模运算和取余运算

    万次阅读 2018-11-01 16:55:27
    对于整型数a,b来说,取模运算或者求余运算的方法都是: 1.求整数商: c = a/b; 2.计算模或者余数: r = a - c*b.   求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0方向舍入(fix()函数);而取模...

    对于整型数a,b来说,取模运算或者求余运算的方法都是:

    1.求整数商: c = a/b;

    2.计算模或者余数: r = a - c*b.

     

    求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0方向舍入(fix()函数);而取模运算在计算c的值时,向-∞方向舍入(floor()函数)。

    例如:计算-7 Mod 4

    那么:a = -7;b = 4;

    第一步:求整数商c,如进行求模运算c = -2(向无穷小方向舍入),求余c = -1(向0方向舍入);

    第二部:计算模和余数的公式相同,但因c的值不同,求模时r = 1,求余时r = -3。

     

    归纳:当a和b符号一致时,求模运算和求余运算所得的c的值一致,因此结果一致。

    当符号不一致时,结果不一样。求模运算结果的符号和b一致,求余运算结果的符号和a一致。

    另外各个环境下%运算符的含义不同,比如c/c++ 为取余,而java则为取模。

     

    在C语言中,%符号表示的是求余运算,在python脚本中,%表示的是取模。

    下面表格是一些典型的取模或者求余的值。

         a       b    C语言:a%b   (求余) Python Shell: a%b(取模)
    -3 -5 -3 -3
    -3 4 -3 1
    -3 2 -1 1
    -1 6 -1 5
    -4 -3 -1 -1
    2 4 2 2
    5 3 2 2
    4 -7 4 -3
    4 -3 1 -2
    -6 -5 -1 -1
    展开全文
  • 取模与取余的区别

    千次阅读 2018-11-13 18:49:21
    其实取模取余在目标上是一致的,但是因为语言对取余取模上定义的不同,导致得到的结果不同。 对取余取模定义不同的语言中,两者的不同点只有一个 取余运算在计算商值向0方向舍弃小数位 取模运算在计算商值向...

    转载地址:https://blog.csdn.net/coder_panyy/article/details/73743722 
     

    其实取模和取余在目标上是一致的,但是因为语言对取余和取模上定义的不同,导致得到的结果不同。

    对取余和取模定义不同的语言中,两者的不同点只有一个

    取余运算在计算商值向0方向舍弃小数位
    取模运算在计算商值向负无穷方向舍弃小数位
    同时,也可以这样理解:

    • 取余,遵循尽可能让商大的原则
    • 取模,遵循尽可能让商小的原则

    从上面的区别可以总结出,取余(rem)和取模(mod)在被除数、除数同号时,结果是等同的,异号时会有区别,所以要特别注意异号的情况。

    下面来看一些例子

    取模

    5 mod 3 = 2
    -5 mod 3 = 1
    5 mod -3 = -1
    -5 mod -3 = -2
    取余

    5 rem 3 = 2
    -5 rem 3 = -2
    5 rem -3 = 2
    -5 rem -3 = -2

    • 经过测试,在C/C++, C#, JAVA, PHP这几门主流语言中,’%’运算符都是做取余运算,而在python中的’%’是做取模运算。

    此外,余数在数学中的定义是始终大于等于0的,而对于某些编程语言的取余运算不是按照上面的定义来执行的,因此才会出现余数小于0的情况。

    说了这么多,我们在使用取模(取余)运算时要注意的地方有一个,当除数和被除数出现异号的情况时,程序移植的时候要特别小心,因为不同语言对取模和取余的定义可能是不同的。

    部分参考:http://blog.csdn.net/chensilly8888/article/details/42834697

     

    展开全文
  • Java 中的取模取余

    千次阅读 2019-01-14 10:52:20
    期末复习密码学时需要用到取模运算,发现 Java 中的 % 运算符并不是取模运算(Modulo Operation),而是取余运算(Complementation)。 计算方法 对于整数 aaa,bbb 来说,取模运算和取余运算的过程相同: 求整数商:c=...
  • 取模运算与取余运算的相同点 公式相同: 取模运算: A mod B = A - (A / B) * B 取余运算: A rem B = A - (A / B) * B 取模运算与取余运算的不同点 对于 A / B 的定义不同: 取模运算在计算 A / B 的值时,向...
  • 取模与取余的不同

    千次阅读 2019-06-11 21:10:40
    通常情况下,我们对取余取模混为一谈,但是这两个是不一样的。我们在c c++ java python里面都是用%表示取模或者取余的,但是我们分别用这四门语言去计算-1%3这个式子发现结果并不一样,原因是在c c++ java里面%...
  • java中的取模取余

    万次阅读 2018-09-19 13:07:01
    public static void main(String[] args) { System.out.println((-4)%(3));//取余 ... * 取余的结果和被除数同号,取模的结果和除数同号 * * * 取模:这里Math.floorMod方法的功能是向...
  • java 取模与取余的区别

    万次阅读 2019-03-18 20:09:59
    取模与取余的区别 对于整型数a,b来说,取模运算或者求余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余数: r = a - c * b 求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0 方向舍入(fix()...
  • 取模运算与取余运算的区别

    千次阅读 2017-08-17 22:36:12
    1.取模运算多见于计算机领域,取余运算一般拥有数学领域。 2.取模运算(取余运算)计算步骤 ①求整数商 c=a/b ②求模(余数)r=a-c*b 3.两者不同点:取模运算c向负无穷远处取整,取余运算向c向0方向取整。 4.结论:a...
  • C语言中取余与取模的区别

    万次阅读 2016-04-08 21:02:57
    c中取余与取模区别 对于整型数a,b来说,取模运算或者求余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余数: r = a - c*b. 求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0 方向舍入;...
  • 取余与取模的差别: 当两个数均为正数是,取余与取模的结果是一致的,而当两个数一正一负时结果就不一样了。 举例: a = -5, b = 3, y = 余数, m = 模 取余过程: c = a / b = -1.67 取余时,会将 c 向0的方向舍弃...
  • js 取模 取余

    万次阅读 2015-09-03 16:25:11
    var i=10; var j=3; var mo = Math.floor(i/j); var yu = i%j;
  • c++和C#中,运算符‘%’为取余运算符,而并非取模预算符,在一些应用场景中,如果不加以区分,会产生严重的bug。
  • 使用userId / 20 取余数,然后面试官就取余跟我讨论了一番, 他表示不理解我的意思,我就说了比如说25除以20取余得到的是5那么就放在table_5中,说了几句后他就提到了取模,还自己写了%,意思就是取余不理解,取模就...
  • 取余与取模的区别,以及在C++(C#)中的使用 c++和C#中,运算符‘%’为取余运算符,而并非取模预算符,在一些应用场景中,如果不加以区分,会产生严重的bug。 取余运算(Complementation)和取模运算(Modulo ...
  • C++取余取模运算实例 13 / 5 = 2 13 % 5 = 3 int(12.5) = 12 ceil(12.5) = 13 floor(12.5) = 12 【%】取余,【/】取模 【ceil()】向上取整,【floor】向下取整
  • 取模与取余运算

    千次阅读 2018-08-14 09:11:30
    取模运算(“Modulo Operation”)和取余运算(“Complementation ”)两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。取模主要是用于计算机术语中。取余则更多是数学概念。 ...
  • c/c++中取余与取模区别

    万次阅读 2016-09-08 16:43:53
    对于整型数a,b来说,取模运算或者求余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余数: r = a - c*b. 求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0 方向舍入;而取模运算在计算c的值...
  • 取余与取模的区别

    2020-02-02 10:51:54
    取余取模运算符都是:% (不同环境下有所不同:在c/c++,java中,%为取余,在python中,%为取模取余,遵循尽可能让商靠近0的原则 取模,遵循尽可能让上商靠近负无穷的原则 a%b = c …d a,b同号时,取余取模结果...
1 2 3 4 5 ... 20
收藏数 10,809
精华内容 4,323
热门标签
关键字:

取模与取余