Java中的位运算符

        

        java中的位运算符用来对二进制位进行操作,包括右移(>>)、左移(<<)、无符号右移(>>>)、按位取反(~)、按位与(&)、按位或(|)、异或(^)等,这些运算符只能对整型和字符型数据进行操作。

 

对于整型数据(计算机中正数通过原码表示,负数是用反码表示

1、右移:若为正数高位补零,若为负数高位补一

       (1)128>>1 得到 64

        0000 0000 0000 0000 0000 0000 1000 0000  128

    =>  0000 0000 0000 0000 0000 0000 0100 0000   64

     (2)-256>>4 得到 -16

        (原码)1000 0000 0000 0000 0000 0001 0000 0000 -256

        (补码)1111 1111 1111 1111 1111 1111 0000 0000 (计算机中的表示形式)

    =>  (补码)1111 1111 1111 1111 1111 1111 1111 0000 

        (原码)1000 0000 0000 0000 0000 0000 0001 0000 -16

2、左移:低位补零

             5<<2 得到 20

             0000 0000 0000 0000 0000 0000 0000 0101   5

    =>    0000 0000 0000 0000 0000 0000 0001 0100   20

3、无符号右移(逻辑右移):高位补零

              -5>>>1 得到  2147483645

            (原码)1000 0000 0000 0000 0000 0000 0000 0101   -5

            (补码)1111 1111 1111 1111 1111 1111 1111 1011

    =>   (补码)0111 1111 1111 1111 1111 1111 1111 1101

            (原码)0111 1111 1111 1111 1111 1111 1111 1101   2147483645

4、按位取反:一元运算符

5、按位与:对两个整型操作数中对应位执行布尔代数,两个位都为1时输出1,否则0。

6、按位或:对两个整型操作数中对应位执行布尔代数,两个位都为0时输出0,否则1

7、异或:对两个整型操作数中对应位执行布尔代数,两个位相等0,不等1

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值