JavaSE 学习参考:位运算符


Java位运算符有:&按位与,|按拉或,^按位异或,~按位取反,<<左移位,>>右移位,>>>右移位。下面以23和11作为操作数来演示:

 

运算符

规则

十进制

二进制

&按位与

两个操作数的二进位都为1结果为,否则为0

23

0001 0111

11

0000 1011

3

0000 0011

|按位或

两个操作数的二进位只要有1位为1结果为,否则为0

23

0001 0111

11

0000 1011

31

0001 1111

^按位异或

两个操作数的二进位相同为0,不同为1

23

0001 0111

11

0000 1011

28

0001 1100

~按位取反

是一个单目运算符,结果是将该数的二进制位取反

23

0001 0111

-24

1110 1000

<<左移位

将左操作数二进制位左移右操作数位数

23

0001 0111

2

 

92

0101 1100

>>右移位

将左操作数二进制位右移右操作数位数

23

0001 0111

2

 

5

0000 1011

>>右移位

将左操作数二进制位右移右操作数位数

23

0001 0111

2

 

5

0000 1011

>>>右移位

将左操作数二进制位右移右操作数位数,左边符号位以0补上

-24

1 {27个1} 1110 1000

1

 

2147483636

0 {27个1}  1111 0100

 

示例1:位运算符

package com.bwf.sample;

public class Demo1 {

 

public static void main(String[] args) {

int a=23,b=11;

int c;

c=a&b;

System.out.println(String.format("%d & %d = %d"a,b,c));

c=a|b;

System.out.println(String.format("%d | %d = %d"a,b,c));

c=a^b;

System.out.println(String.format("%d ^ %d = %d"a,b,c));

c=~a;

System.out.println(String.format("~%d  = %d"a,c));

c=a<<2;

System.out.println(String.format("%d << 2 = %d"a,c));

c=a>>2;

System.out.println(String.format("%d >> 2 = %d"a,c));

c=-24>>>1;

System.out.println(String.format("%d >>> 2 = %d"a,c));

}

}

 

 

执行的结果如下图所示:



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值