zoukankan      html  css  js  c++  java
  • java学习笔记之位运算符

      java的位运算符主要针对二进制数的位进行逻辑运算,主要包括以下几种的位运算符

      1、与运算符(&)

        与运算符的使用规律是两个操作数中位为1的时候结果为1,否则都是0,例如  3&5=1

        3对应的二进制数是0011       5对应的二进制数是0101,所以根据与运算的规则,3&5得出的结果是0001,转换成十进制就是1

      2、或运算符(|)

        或运算符的的使用规则是两个位中只要任意一个里面有一,那么结果为1,也就是说只有当两个位都为0的时候结果才为0,例如 3|5=7

        根据或运算符的规则,3|5的记过是0111,转换成十进制就是 7

      3、非运算符(~)

        非运算符是针对一个数进行操作的,它的使用规则是将一个数的二进制数全部取反,0变成1,1变成0,例如 ~5=-6

        5对应二进制数是0101,因为计算机内部表示数的字节单位是定长的,如8、16、32 位,不够的0补位。所以5对应的二进制数应该是 0000 0101,

        ~5 = 1111 1010,最高是符号位,所以1111 1010代表的是个负数,先将1111 1010 减1 变成1111 1001 ,再取反变成 0000 0110=6,所以~5=-6

      4、异或运算符(^)

        异或运算符的使用规则是两个操作数的位中,相同为0,不同为1,所以3(0010)^5(0101)=7(0111)

      5、左移运算符(<<)

        左移运算符是针对一个数进行操作的,运算规则是将一个数的二进制数整体向左移,末尾用0补上,所以     5 << 1 = 10    5 << 2 = 20

        5对应的二进制是0101,左移一位就变成了 1010=10 左移两位就变成了  0001 0100 = 20,所以左移多少位就是把原来的数乘以2的多少次方

      6、右移运算符(>>)

        右运算符与左运算符相反,是将一个数的二进制数整体右移,例如   5>>1 = 2,5对应的二进制数是0101,右移一位就变成了0010=2,当数的本身小于2的n次方的时候,右移n位结果都是0,例如5<2*2*2,所以5 >>3 = 0

      7、又移运算符(>>>)

        >>>运算符和>>的使用规则基本一样,但是>>>运算符左后最高位都是用0标识

  • 相关阅读:
    包含游标、数组的例子
    团队开发的注意点
    养成逻辑的习惯
    C# DEV 右键出现菜单
    C#中ToString数据类型格式大全 千分符(转)
    Oracle系统查询的语句
    PLSQLDevelop 查询当前未完成的会话
    Oracle 异常工作中出现的
    Oracle 返回结果集 sys_refcursor
    DevExpress.XtraEditors.TextEdit,设定为必须number类型的。
  • 原文地址:https://www.cnblogs.com/gulang-jx/p/8052645.html
Copyright © 2011-2022 走看看