• JAVA-初步认识-第三章-移位运算符练习


    一. 用学习到的位运算符参与计算

    现在我们探讨如何高效地进行2*8(如果想利用左移来提高运算效率,必须是2的次幂),在了解如何提高效率之前,我们要先知道计算机一般地是怎么进行乘法运算的。

    上图就是正常乘法运算的流程图(对于上面的运算,其实省略了左侧的很多的0)。想提高效率,就要使用移位运算。

    移位运算是直接操作二进制位。→我们如果以计算时的步数来作为效率的体现,那么这里的移位运算只需要两步就可

    完成运算,但是按照正常的乘法运算需要很多步

    通过对2的次幂的数的乘法和除法的计算过程研究,人们发现核心就是移位,从而设计了移位运算符。

    以目前的讲解来看,移位运算符本质上是为了提高乘法和除法运算的效率。

    二. 对两个整数变量的值进行互换,不需要借用第三个变量

    常见的两个整数变量之间进行互换是采用,第三方变量。

    如果要避免第三方变量,可以采用求和相减的方式,a=a+b, b=a-b, a=a-b.但是这种方法不建议用,

    如果两个变量数值过大,会造成精度缺失。(精度缺失问题确实值得好好研究,目前还不是很懂。)→四则运算的过程中,精度缺失的问题始终是要注意的问题。

    这里采用另一种计算,异或的方式。a=a^b, b=a^b, a=a^b. →a=3^5; b=3^5^5; a=3^5^3。注意:这里暴露出一点,对于异或运算

    的本质理解不清。a^b和b^a结果是一样的,仔细想想异或位运算的过程就知道了,也不会超出范围。

    异或运算的两个数,改变两个数的先后顺序,不影响结果。

  • 相关阅读:
    一道面试题引发的对JavaScript类型转换的思考
    微信后台开发第一步:nodeJS+express接入微信后台详细教程
    class命名
    了解真实的『REM』手机屏幕适配
    js刷新框架子页面的七种方法代码
    移动前端开发之viewport的深入理解
    移动web点5像素的秘密
    refactor window_x64微信小程序环境搭建
    JSON API免费接口
    webpack
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7469686.html
Copyright © 2020-2023  润新知