zoukankan      html  css  js  c++  java
  • JAVA-初步认识-第三章-移位运算符

    对前面涉及的逻辑运算符进行一个总结,逻辑运算符有这么几个,与运算符&,或运算符|,非运算符!,异或运算符^,双与运算符&&,双非运算符||,接着又从逻辑运算符的基础上发展了位运算符,&运算符,|运算符,~运算符(反码),^运算符。位运算符是对所有的逻辑进行了利用。与,或,非,异或。

    比较运算符是对数值进行比较大小,得到的结果为boolean型数据。逻辑运算符是对boolean型数据进行逻辑运算,得到的结果还是boolean型数据。位运算符是对二进制数进行逻辑运算,得到的是数值型数据。

    一. 概述

    位运算符的种类比较繁多,都来自与逻辑运算符,算是对逻辑运算符的发展。

    二. 移位运算符

    移位运算符有三个:左移,右移,无符号右移。符号分别是<<, >>, >>>。左右移都会导致符号的变化?

    其实就操作来看,并不复杂,但是诞生这种操作的原因是什么?

    <<左移:是对二进制编码进行移位,去除溢出位,填加空白位。举例说明:3<<2, 输出的结果为3*22=12,

    3<<3, 输出的结果为3*23=24。左移可以完成基于2的次幂运算,比如1<<1, 1<<2, 1<<3......可以得出2的不同次幂。

    >>右移:二进制码往右进行移位,去除右边溢出的位,填补左侧的高位。高位填补时,原先是1就补1,原先是0就补0,

    如果是缺少多个高位,怎么办?是按照对应的原先的高位数据来补充么?右移几位,就是除以2的几次幂。如果原先是负数,

    移完后的结果也是负数,保证了高位不变。

    >>>无符号右移,就是在右移的基础上,填补高位全都是用的0。

    三. 总结

    就目前的操作来看,移位运算符只能是针对的2的次幂的乘除。具体的运用还要看后面的讲解。

  • 相关阅读:
    深入理解计算机系统(第三版)作业题答案(第三章)
    深入理解计算机系统(第三版)作业题答案(第二章)
    greedy算法(python版)
    Dijkstra算法(Swift版)
    Breadth-first search 算法(Swift版)
    递归演示程序(swift)
    Node.js之异步流控制
    Node.js之单利模式
    Node.js之循环依赖
    一个完整的Node.js RESTful API
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7467726.html
Copyright © 2011-2022 走看看