java中的位运算符

1.位运算符

运算符运算
<<左移
>>右移
>>>无符号右移
&与运算
或运算
^异或运算

2.位运算符细节

运算符细节
<<空位补0,被移除的高位丢弃
>>被移除的二进制最高位是0,右移后,空缺位补0;最高位是1,最高位补1
>>>被移除最高位无论是0或者是1,空缺位都用0补
&任何二进制位和0进行&运算,结果是0;和1进行运算结果是1
任何二进制位和0进行|运算,结果是原值;和1进行|运算结果是1
^任何相同二进制位进行^ 运算,结果是0;不相同二进制位^运算结果是1

代码块:

package demo;

public class Demo1 {
	public static void main(String[] args) {
		//位运算符
		//1.左移<<(相当于6*2的2次方)
		System.out.println(6<<2);
		/*
		 * 6的原码:
		 * 0000-0000 0000-0000 0000-0000 0000-0110 
		 * 左移两位:
		 * 0000-0000 0000-0000 0000-0000 0001-1000 
		 * 
		 * */
		//2.右移>>(相当于8/2的2次方)
		System.out.println(8>>2);
		/*
		 * 8的原码:
		 * 0000-0000 0000-0000 0000-0000 0000-1000
		 * 右移两位:
		 * 0000-0000 0000-0000 0000-0000 0000-0010
		 * 
		 * */
		//3.无符号右移>>>
		System.out.println(-9>>>2);
		/*
		 * -9的原码
		 * 1000-0000 0000-0000 0000-0000 0000-1001
		 * -9的反码
		 * 1111-1111 1111-1111 1111-1111 1111-0110
		 * -9的补码
		 * 1111-1111 1111-1111 1111-1111 1111-0111
		 * 无符号右移2位
		 * 0011-1111 1111-1111 1111-1111 1111-1101
		 * */
		//4.位&运算
		System.out.println(4&2);
		/*
		 * 4的原码:
		 * 0000-0000 0000-0000 0000-0000 0000-0100
		 * 2的原码:
		 * 0000-0000 0000-0000 0000-0000 0000-0010
		 * 进行位&运算:全1才1,有0则0
		 * 0000-0000 0000-0000 0000-0000 0000-0000
		 * */
		//5.位|运算
		System.out.println(4|2);
		/*
		 * 4的原码:
		 * 0000-0000 0000-0000 0000-0000 0000-0100
		 * 2的原码:
		 * 0000-0000 0000-0000 0000-0000 0000-0010
		 * 进行位|运算:全0才0,有1则1
		 * 0000-0000 0000-0000 0000-0000 0000-0110
		 * */
		//位^运算
		System.out.println(4^2);
		/*
		 * 4的原码:
		 * 0000-0000 0000-0000 0000-0000 0000-0100
		 * 2的原码:
		 * 0000-0000 0000-0000 0000-0000 0000-0010
		 * 进行位^运算:相同位0,不同为1
		 * 0000-0000 0000-0000 0000-0000 0000-0110
		 * */
		System.out.println(4^4);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值