day05 java位运算符

目录

位运算符

&按位与

| 按位或

<<、 >>、 >>> 左右移运算符

<<左移运算符

>>右移预算符

左移右移主要移的是补码

>>>无符号右移


位运算符

&按位与

&按位与:两位同时为1时返回1

如:(5&3)=1

0000 0000 0000 0101

0000 0000 0000 0011

0000 0000 0000 0001

同理:

| 按位或

按位或,只要有一位为1可返回1

<<、 >>、 >>> 左右移运算符

<<左移运算符

		//<< : 左移(在一定范围内每向左移一位原来的值乘以2)
		System.out.println(8 << 1);//16
		System.out.println(8 << 2);//32
		System.out.println(8 << 3);//64

>>右移预算符

// >> :右移 (在一定范围内每向右移一位原来的值除以2) 
		
		//正数:高位用0补
		System.out.println(6 >> 1);//3
		System.out.println(6 >> 2);//1

左移右移主要移的是补码

如-6的补码是:1111 1111 1111 1010

右移后的补码为:1111 1111 1111 1101(是-3的补码)

再右移的补码:1111 1111 1111 1110 (是-2的补码)

右移左边补1,左移右边补0

		//负数:高位用1补
		System.out.println(-6 >> 1);//-3
		System.out.println(-6 >> 2);//-2

>>>无符号右移

左右移动都视为原码都补0

		System.out.println(6 >>> 1);//3
		System.out.println(6 >>> 2);//1
		
		//负数:高位用0补
		System.out.println(-6 >>> 1);//2147483645
		System.out.println(-6 >>> 2);//1073741822

负数:

-6补码:1111 1111 1111 1010

右移后:0111 1111 1111 1101(原码表示为2147483645)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值