java 位运算符 取反_Java位运算符

&与、|或、^异或、~取反、<>右移、 >>>无符号右移

&:有0则0####

例:6&2

6二进制:110

2二进制:10

110

010

010:结果

6&2=2

|:有1则1####

例:6|2

6二进制:110

2二进制:10

110

010

110:结果

6&2=6

^:相同则0,不同则1####

例:6^2

6二进制:110

2二进制:10

110

010

100:结果

6&2=4

~:按位取反####

例:~6

6二进制:110

00000000 00000000 00000000 00000110

取反11111111 11111111 11111111 11111001补码运算取原码

- 00000000 00000000 00000000 00000001

反码11111111 11111111 11111111 11111000

原码10000000 00000000 00000000 00000111

10000000 00000000 00000000 00000111=-7

所以~6=-7

<<:>

例:12<<1

00000000 00000000 00000000 00001100

左移(0)0000000 0000000 0000000 00011000

0000000 0000000 0000000 00011000=24

12<<1=24;

>>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1

例:12>>1

00000000 00000000 00000000 00001100

右移 000000000 00000000 00000000 0000110(0)

000000000 00000000 00000000 0000110=6

12>>1=12;

>>>:无符号右移 无论最高位是0还是1,左边补齐0

例:12>>>1

00000000 00000000 00000000 00001100

右移 000000000 00000000 00000000 0000110(0)

000000000 00000000 00000000 0000110=6

12>>>1=12;

-12>>>1

原码10000000 00000000 00000000 00001100

反码11111111 11111111 11111111 11110011

补码11111111 11111111 11111111 11110100

无符号右移01111111 11111111 11111111 11111010(0)

01111111 11111111 11111111 11111010=2147483642

-12>>>1=2147483642

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值