java位运算

1、与(&)运算符,有0为0

例:-5 & 4

-5的二进制形式为:11111111 11111111 11111111 11111011

4的二进制形式为:00000000 00000000 00000000 00000100

进行逻辑运算后为:00000000 00000000 00000000 00000000

2、或(|)运算符,全0为0

例:-5 | 4

-5的二进制形式为:11111111 11111111 11111111 11111011

4的二进制形式为:00000000 00000000 00000000 00000100

进行逻辑运算后为:11111111 11111111 11111111 11111111

3、非(~)运算符,取反,1变0,0变1

例: ~(-5)

-5的二进制形式为:11111111 11111111 11111111 11111011

取反后的二进制形式为:00000000 00000000 00000000 00000100

4、异或(^)运算符,相异为1

例:-5 ^ 4

-5的二进制形式为:11111111 11111111 11111111 11111011

4的二进制形式为:00000000 00000000 00000000 00000100

进行逻辑运算后为:11111111 11111111 11111111 11111111

5、右移(>>) 运算符带符号右移。正数右移高位补0,负数右移高位补1



**相当于除以2**

6、左移(<<)运算符,m<<n,把m的二进制数左移n位,高位超出n位都舍弃,低位补0

此时可能出现正数变负数

注意:在数字没有溢出的情况下,对于整数和负数,m<<n相当于m乘以2的n次方。

例:5<<2

5的二进制形式为:00000000 00000000 00000000 00000101

进行逻辑运算后为(左移两位):00000000 00000000 00000000 00010100

7、无符号右移(>>>)运算符,m>>>n,整数m表示的二进制右移n位,不论正负数,高位都补0

例1: 5>>>2

5的二进制形式为:00000000 00000000 00000000 00000101

进行逻辑运算后为(无符号右移两位):00000000 00000000 00000000 00000001

转换为十进制为:1

例2:-5>>>2

-5的二进制形式为:11111111 11111111 11111111 11111011

进行逻辑运算后卫(无符号右移两位):00111111 11111111 11111111 11111110

转换为10进制为:1073741822
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值