java位运算符的基础总结

位运算符

运算符运算范例
<<左移3 << 2 --> 3x2x2=12
>>右移3 >> 2 = 1 --> 3/2=1
>>>无符号右移3 >>> 1 --> 3/2=1
&与运算6 & 3 = 2
或运算6 | 3 = 7
^异或运算6 ^ 3 = 5
~反码-6 = -7

小贴士:
位运算符是直接对二进制进行运算
<< 相当于乘与2的倍数
而>>相当于除以2的倍数
移n位,就是对乘以或除以2的n次幂。

下面是例子的计算过程,位运算符就是直接对二进制进行运算,所以把数转换成二进制直观的去观察;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

有一道题是这样的:
数组中,只有一个数出现一次,剩下都出现两次,找出出现一次的数;
这里可以用^来解决。
异或符号的特点:一个数异或另一个数两次,结果还是这个数;

	public static void main(String[] args) {

		int[] ace = {5,3,3,5,2,6,9,9,6};
		int t=0;
		for (int i = 0; i < ace.length; i++) {			
			t^=ace[i];			
		}
		System.out.println(t);	
	}

在这里插入图片描述
&与运算:
true & true = true;
true & false = false;
false & true = false;
false & false = false;
&运算:当左右两边都为true时,结果是true,否则结果是false。

| 或运算:
true | true = true;
true | false = true ;
false | true = true;
false | false = false;
|运算: 左右两边只要有一个为true, 结果是true,两边都为false时,结果为false。

^异或符号:
true ^ true = false;
true ^ false = true ;
false ^ true = true;
false ^ false = false;
^ 运算 :两边都相同,结果是false.两边不同结果是true.

作者的话:
整理的不是太好,看着有些乱,但是呢,学习就是从不会到会的过程,只有动手去做,去输入输出,总会变得更好的,欢迎大家一起交流探讨哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值