2个int 整除并求余 有没有一个高效算法。 int a,b;int c=a/b;int d=a%b;只能这样吗?2个int 整除并求余 有没有一个高效算法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个算法已经非常非常高效了,是CPU指令所直接支持的。如果还企图找更高效的算法,除非 b 是特殊数字,比如当 b = 4 的时候那么可以用位运算(比除法和取余速度高很多):int c = a >> 2;int d = a & 0x3; http://topic.csdn.net/u/20121024/19/c2250cf3-61aa-4ba7-841a-11a281313669.html?25636同样的帖子放了两个,lz很阔绰。 是啊 泛化一下就是x % 2^n == x & (2^n - 1)只有在右操作数是2的次幂的情形下不过我觉得对这种类型的操作现在的java编译器应该会有优化吧,没查证过。 这样的简单计算还不算高效,那什么样的才算高效呢?JAVA未提供一次就同时算出商和余数的语言支持。 又见死琐? 请教:JAVA中JTable中的数据导出到EXCEL中 请问怎么实现(快捷键是F1)的设置? 急求正则表达式:不以某些字符开头,需要以某些字符结束 JTextField的问题 能跳跃学JAVA吗?? 各位大侠:我有一个2M左右的只有一行的纯文本文件,要怎么读? 区域码转换问题!麻烦ggjj帮下忙! weblogic的版本问题 APPLET可否传对象回SERVLET JAVA定义Map类型的数组 图书管信息管理系统
那么可以用位运算(比除法和取余速度高很多):
int c = a >> 2;
int d = a & 0x3;
同样的帖子放了两个,lz很阔绰。
x % 2^n == x & (2^n - 1)只有在右操作数是2的次幂的情形下不过我觉得对这种类型的操作现在的java编译器应该会有优化吧,没查证过。
JAVA未提供一次就同时算出商和余数的语言支持。