Java位运算的使用(持续更新...)

以下数字都使用byte(1字节,8b)示例

&(与)

&可以给两位数字进行与运算
例如:3 & 4  = 0
   3:0000 0011    
   4:0000 0100
   -------------
      0000 0000
   也就是说,&运算,会将两个数的二进制每一位来进行比较
   如果都是1,那么就是1,否则都是0

|(或)

|和&的原理是相反的
例如:3 | 4 = 7
	3:0000 0011
	4:0000 0100
	-------------
	   0000 0111
	如果二进制的数都是1或者有一个为1,那么就是1
	否则为0

~(非)

~运算是单独一个数
例如:~3 
	0000 0011
	----------
	1111 1100
	0变成1,1变成0

^(异或)

例如:3 ^ 4 =  7
	3:0000 0011 
	4:0000 0100
	-------------
	都是0的话就是0,都是1也是0,0和1是1

位运算 << 和 >>

<<

左位移就是将一个数的二进制位向左移动n位
例如:3 << 2 = 12
3:0000 0011
将两个1向左移动两位,移动的位置并补上0
得到 0000 1100

>>

右位移,就是将一个数的二进制位向右移动n位
例如:3 >> 2 = 0
3:0000 0011
将1右移动两位,就小于了最小位,所以补上0就是
0000 0000

求整数N的二进制第k位是?

有一个数N,想要知道它的二进制数第k位是多少
可以 公式: N >> k & 1
例如:
25:0001 1001
求第5位是多少,k==4,k从0开始
25 >> 4 & 1 = 1,就是1了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Oak Coffee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值