• 技术文章 >java >java基础

    java中的位运算符是什么?是什么?

    小妮浅浅小妮浅浅2021-02-06 18:03:08原创2791

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    1.概念

    位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。作用在所有的位上,并且按位运算。

    2.类型

    与,如果相对应位都是1,则结果为1,否则为0

    | 或,如果相对应位都是 0,则结果为 0,否则为 1

    ^ 异或,如果相对应位值相同,则结果为0,否则为1

    取反,按位取反运算符翻转操作数的每一位,即0变成1,1变成0。

    << 按位左移运算符。左操作数按位左移右操作数指定的位数。

    >> 按位右移运算符。左操作数按位右移右操作数指定的位数。

    >>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

    3.注意事项

    位运算是直接对二进制进行运算

    在位运算中,操作数必须是整型

    位异或运算符的特点:

    (1)一个数据对另一个数据位异或两次,该数本身不变。

    (2)任何数和自身异或,结果为0

    (3)任何数和0异或,结果为本身

    (4)<< 左移一位,相当于乘以2: 3 << 2 = 12 --> 322=12

    (5)>> 右移一位,相当于除以2: 3 >> 1 = 1 --> 3/2=1

    (6)3 >>> 1 = 1 --> 3/2=1

    同样的运算,位运算的效率高于算术运算

    4.实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    class BitDemo{

    public static void main(String[] args){

    int a = 12;

    //8对应二进制是:00000000 00000000 00000000 00001000

    int b = 8;

    //左移运算,所有的位数向左侧移动指定的位数,左侧高位直接抛弃,右侧低位补0

    //右移运算,所有的位数向右侧移动指定的位数,左侧高位补零,右侧直接抛弃

    //00000000 00000000 00000000 00100000---32

    //00000000 00000000 00000000 00000010---2

    System.out.println(b << 2);

    System.out.println(b >> 2);

    System.out.println(6 & 3);

    System.out.println(6 | 3);

    System.out.println(6 ^ 3);

    //00000000 00000000 00000000 00000110 &

    //00000000 00000000 00000000 00000011 =

    //00000000 00000000 00000000 00000010 -->2

      

      

    //00000000 00000000 00000000 00000110 |

    //00000000 00000000 00000000 00000011 =

    //00000000 00000000 00000000 00000111 --> 7

    //00000000 00000000 00000000 00000110 ^

    //00000000 00000000 00000000 00000011 =

    //00000000 00000000 00000000 00000101 --> 5

    //下面的算法可以实现a和b的数据转化效果

    //对两个操作数连续执行三次异或操作,会改变值的顺序

    //a = a ^ b;

    //b = a^ b;

    //a = a ^b;

    //System.out.println(a);

    //System.out.println(b);

    //最简单的一种形式

    //int temp = a;

    //a = b;

    //b = temp;

    //一句话搞定

    a =  a + b -(b =a);

    System.out.println(a);

    System.out.println(b); 

    }

    }

    以上就是关于位运算符在java中的使用,同时在二进制的运算上也是非常好用的。学会的小伙伴可以在实例操作上尝试一下,检验自己的学习成果。更多Java学习指路:Java基础

    专题推荐:java位运算符
    上一篇:java:逻辑运算符是什么?怎么用? 下一篇:位运算符如何在java中转换进制?

    相关文章推荐

    • java中常量是什么?有哪些类型?• java中final如何定义常量?• 算术运算符如何在java中使用?• java中赋值运算符是什么?• java中如何用关系运算符判断?• java:逻辑运算符是什么?怎么用?• java中的位运算符是什么?是什么?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网