int a,b;
int c=a/b;
int d=a%b;
只能这样吗?
2个int 整除并求余 有没有一个高效算法。

解决方案 »

  1.   

    这个算法已经非常非常高效了,是CPU指令所直接支持的。如果还企图找更高效的算法,除非 b 是特殊数字,比如当 b = 4 的时候
    那么可以用位运算(比除法和取余速度高很多):
    int c = a >> 2;
    int d = a & 0x3;
      

  2.   

    http://topic.csdn.net/u/20121024/19/c2250cf3-61aa-4ba7-841a-11a281313669.html?25636
    同样的帖子放了两个,lz很阔绰。
      

  3.   

    是啊 泛化一下就是
    x % 2^n == x & (2^n - 1)只有在右操作数是2的次幂的情形下不过我觉得对这种类型的操作现在的java编译器应该会有优化吧,没查证过。
      

  4.   

    这样的简单计算还不算高效,那什么样的才算高效呢?
    JAVA未提供一次就同时算出商和余数的语言支持。