zoukankan      html  css  js  c++  java
  • 移位乘除法

    移位实现的乘除法比直接乘除的效率高很多。

    用移位实现乘除法运算
      a=a*4;
      b=b/4;
      可以改为:
      a=a<<2;
      b=b>>2;
      说明:
      除2 = 右移1位 乘2 = 左移1位
      除4 = 右移2位 乘4 = 左移2位
      除8 = 右移3位 乘8 = 左移3位
      ... ...
      通常如果需要乘以或除以2的n次方,都可以用移位的方法代替。
      大部分的C编译器,用移位的方法得到代码比调用乘除法子程序生成的代码效率高。
      实际上,只要是乘以或除以一个整数,均可以用移位的方法得到结果,如:
      a=a*9
      分析a*9可以拆分成a*(8+1)即a*8+a*1, 因此可以改为: a=(a<<3)+a
      a=a*7
      分析a*7可以拆分成a*(8-1)即a*8-a*1, 因此可以改为: a=(a<<3)-a
      关于除法读者可以类推, 此略.

  • 相关阅读:
    es6
    vue-router
    vue-lazyload
    java-number2
    echart事件
    weui了解
    java-number
    Java判断语句
    java 循环控制
    The access type for the readers of the blog.
  • 原文地址:https://www.cnblogs.com/andyidea/p/yiweichengfa.html
Copyright © 2011-2022 走看看