位运算与乘法速度比较

转载 2012年03月29日 10:54:45
【IT168 编程开发】这里我主要和大家一起讨论乘法与位运算。一直以来,很多人都认为位运算要比乘法执行效率高,我一直也是这样认为的,但是真的是这样的吗?让我们看下面的代码:
 
package Optimize;
 
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
 
public class mulTest extends MIDlet {
 
       public mulTest() {
              super();
              // TODO Auto-generated constructor stub
       }
 
       protected void startApp() throws MIDletStateChangeException {
              // TODO Auto-generated method stub
              long timer = 0L;
              int i = 9876;
              int j = i;
 
              timer = System.currentTimeMillis();
              for (int k = 100000; k > 0; k--) {
                     j = j << 7;
              }
              System.out.println(System.currentTimeMillis() - timer);
             
              timer = System.currentTimeMillis();
              for (int k = 100000; k > 0; k--) {
                     i = i * 128;
              }
              System.out.println(System.currentTimeMillis() - timer);
       }
 
       protected void pauseApp() {
              // TODO Auto-generated method stub
 
       }
 
       protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
              // TODO Auto-generated method stub
 
       }
 
}
  测试出来的结果让我吃惊,位运算使用的时间还多点,在10万次的重复运算中,乘法要快30-40毫秒左右,这说明在使用位运算是没有必要的。

位运算 优化运算速度——已发《电脑报》

面试中位运算的考核是常见应用

使用位运算加速乘除法运算

位运算     位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。 位运算符有:     &(按位与)、|(按位或)、...

常见位运算,提高算法效率

第一条:利用位运算判断一个整数是奇数还是偶数。 经常用到一个for循环,当索引i是奇数时执行语句A,偶数时执行语句B。判断i是奇数还是偶数,可用如下方法: if(i &1){ //i是奇数情况执...
  • a_long_
  • a_long_
  • 2016年08月18日 20:35
  • 1356

优秀程序员不得不知道的20个位运算技巧

一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编...
  • nash_
  • nash_
  • 2012年12月08日 09:45
  • 72043

unity下 除法 乘法效率对比

以前总听前辈说,优化,乘法比除法省效率,今天闲的无聊试一下。 测试环境,PC下,cpu i4590 1, 2, 3, 结论,电脑上,乘法除法基本没什么差别 手机上iPhon...

C/C++ 利用位运算优化整数乘法

本文参考自《深入理解计算机系统》中文版
  • holdsky
  • holdsky
  • 2014年04月07日 18:31
  • 1232

高效面试之位运算

一.技巧 1.特殊数&或者! 2.本身异或为0,与0异或为本身,满足交换律 例:不借助第三数 交换两数 3.取反加1 求相反数 4.巧妙分组处理(16bit位的数) 分为8组(分...

移位运算为什么比乘法除法快

从效率上看,使用移位指令有更高的效率,因为移位指令占2个机器周期,而乘除法指令占4个机器周期。从硬件上看,移位对硬件更容易实现,所以会用移位,移一位就乘2,这种乘法当然考虑移位了。 ...
  • Hk_john
  • Hk_john
  • 2017年04月10日 10:04
  • 1272

C/C++用移位实现乘除法运算,提高运行效率

用移位实现乘除法运算    a=a*4;    b=b/4;可以改为:    a=a    b=b>>2;说明:除2 = 右移1位               乘2 = 左移1位 除4 = 右移2位 ...

关于js中的顶级对象模型

只是为了更深的记住,所以自己达成
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:位运算与乘法速度比较
举报原因:
原因补充:

(最多只允许输入30个字)