• 技术文章 >java >java基础

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

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

    本教程操作环境: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.实例

    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学习网