位运算符



                                             位运算符  

运算符 运算 范例
<< 左移 3<<2=12-->3*2*2=12
>> 右移 3>>1=1-->3/2=1
>>> 无符号右移 3>>>1=1-->3/2=1
& 与运算 6&3=2
| 或运算 6|3=7
^ 异或运算 6^3=5
~ 反码 ~6=-7


注:位运算是直接对二进制进行运算。


&(与运算):和|(或运算):和^(异或运算

                                                                                        注:110这个是简写。

例:1                                                                            1解析

class Demo7                                                                 6的二进制是:110

{                                                                                     3的二进制是:011

    public static void main(String[] args)                               结果是:010   

    {

            System.out.println(6&3);//结果是2    

    }

}


例:2                                                                   2解析               

class  Demo8                                                      6的二进制是:110

{                                                                           3的二进制是:011                           

    public static void main{String[] args}                   结果是 :111                                  

    {

             System.out.println(6|3);//结果是7。

     }

}


例:3

                                                                                3解析                                     

class  Demo9                                                            6的二进制是:110                       

{                                                                                 3的二进制是:011                       

    public static void main(String[] args)                           结果是:101               

    {

            System.out.println(6^3);//结果是5。

    }

}


例:6^3^3

结论:一个数异或同一个数两次,结果还是这个数。


~(反码)反码运算:

例:

class   DemoHome

{

    public static void main(String[] args)

    {

            System.out.println(~6);//结果是 -7。

    }

}

 

<<(左移)左移运算符

例:

class  DemoHome1    

{

    public static void main(String[] args)

    {

            System.out.println(3<<2);//结果是12。

    }

}


总结:左移几位其实就是该数据乘以2的几次方。

<<(左移):可以完成2的次幂运算。

例:3*2(2) =12



>>(右移):右移运算


class  DemoHome2

{

    public static void main(String[] args)

    {

            System.out.println(6>>1);//结果是12。

    }

}


 总结:右移几位其实就是该数据除于2的几次幂。    

>>:对于高位出现的空位,原来高位是什么就用什么补这个空位。

例:6/2(1)=3



>>>(无符号右移):

>>>(无符号右移)和>>(右移)的区别:

数据进行右移时,高位出现的空位,无论高位是什么,空位都用0补。


                                                

                                                      位运算符的细节

<<

空位补0,被移除的高位丢弃,空缺位补0。

>> 被移除的二进制最高位是0,右移后,空缺位补0。最高位是1,空缺位补1,。

>>>

被移除的二进制最高位无论是0或者是1,空缺位都用0补。
& 二进制位进行&运算,只有1&1时结果是1,否则是0。
| 二进制位进行|运算,只有0|0时结果是0,否则是1,。
^

相同二进制位进行^运算,结果是0。:1^1=0,   0^0=0。

不相同的二进制位^运算,结果是1。

:0^1=1,    1^0=1。



技巧:二进制1就是true,0就是false。


                                             位运算符  

运算符 运算 范例
<< 左移 3<<2=12-->3*2*2=12
>> 右移 3>>1=1-->3/2=1
>>> 无符号右移 3>>>1=1-->3/2=1
& 与运算 6&3=2
| 或运算 6|3=7
^ 异或运算 6^3=5
~ 反码 ~6=-7


注:位运算是直接对二进制进行运算。


&(与运算):和|(或运算):和^(异或运算

                                                                                        注:110这个是简写。

例:1                                                                            1解析

class Demo7                                                                 6的二进制是:110

{                                                                                     3的二进制是:011

    public static void main(String[] args)                               结果是:010   

    {

            System.out.println(6&3);//结果是2    

    }

}


例:2                                                                   2解析               

class  Demo8                                                      6的二进制是:110

{                                                                           3的二进制是:011                           

    public static void main{String[] args}                   结果是 :111                                  

    {

             System.out.println(6|3);//结果是7。

     }

}


例:3

                                                                                3解析                                     

class  Demo9                                                            6的二进制是:110                       

{                                                                                 3的二进制是:011                       

    public static void main(String[] args)                           结果是:101               

    {

            System.out.println(6^3);//结果是5。

    }

}


例:6^3^3

结论:一个数异或同一个数两次,结果还是这个数。


~(反码)反码运算:

例:

class   DemoHome

{

    public static void main(String[] args)

    {

            System.out.println(~6);//结果是 -7。

    }

}

 

<<(左移)左移运算符

例:

class  DemoHome1    

{

    public static void main(String[] args)

    {

            System.out.println(3<<2);//结果是12。

    }

}


总结:左移几位其实就是该数据乘以2的几次方。

<<(左移):可以完成2的次幂运算。

例:3*2(2) =12



>>(右移):右移运算


class  DemoHome2

{

    public static void main(String[] args)

    {

            System.out.println(6>>1);//结果是12。

    }

}


 总结:右移几位其实就是该数据除于2的几次幂。    

>>:对于高位出现的空位,原来高位是什么就用什么补这个空位。

例:6/2(1)=3



>>>(无符号右移):

>>>(无符号右移)和>>(右移)的区别:

数据进行右移时,高位出现的空位,无论高位是什么,空位都用0补。


                                                

                                                      位运算符的细节

<<

空位补0,被移除的高位丢弃,空缺位补0。

>> 被移除的二进制最高位是0,右移后,空缺位补0。最高位是1,空缺位补1,。

>>>

被移除的二进制最高位无论是0或者是1,空缺位都用0补。
& 二进制位进行&运算,只有1&1时结果是1,否则是0。
| 二进制位进行|运算,只有0|0时结果是0,否则是1,。
^

相同二进制位进行^运算,结果是0。:1^1=0,   0^0=0。

不相同的二进制位^运算,结果是1。

:0^1=1,    1^0=1。



技巧:二进制1就是true,0就是false。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值