位运算

作者: Arya鑫 | 来源:发表于2017-08-13 21:28 被阅读14次

Java中的按位操作符有四个,分别是:&(按位与)、|(按位或)、^(按位异或)、~(按位非)。

1、先来看按位与(&)

从结果可以清晰的看到,与的规则为:两位相与,若有一位为0,则结果为0,否则为1。

2、然后是按位或(|)

public class Main {

这样就得到了按位或的结果

3、接下来是按位异或

不同得1,相同得0

按位异或有一个有意思的用法,它可以不用第三方变量,交换两数的值,如下

这个是有依据的,这样来看,

第一步:temp1^=temp2,即temp1=temp1^temp2

第二步:temp2=temp2^temp1=temp2^(temp1^temp2),异或满足交换律,去括号后最后得到temp2=temp1

第三步:temp1=temp1^temp2=(temp1^temp2)^temp2=temp1^temp2^temp1=temp2

经过这三步,顺利交换了两变量的值。

这个方法告诉我们,可以在C++中这样实现swap函数

这里使用了传引用,当然你也可以用传指针的方式实现

4、最后是按位非(~)

应用:

1、1001个数中,只有一个是重复的,找出这个重复的数。

2、一堆数中,只有两个数出现了一次,其他都出现了两次,找出这两个数。

3、两个数中,一个数出现奇数次, 个出现偶数次,找出出现奇数次的数。


http://blog.csdn.net/alading2009/article/details/40450421

http://www.cnblogs.com/JhSonD/p/6374397.html


相关文章

  • 3、小众运算符の大课堂(一)

    较为简单の位运算符: & 位与运算| 位或运算^ 位异或运算~ 位取反运算 举例: 要做位运算,首先要把数据转...

  • 位运算及其应用

    内容概要: 位运算基本操作 基于位运算的状态压缩 位运算经典应用 位运算解N皇后问题 位运算 符号描述规则&与1&...

  • 位运算及用位运算实现权限控制

    请自行补习位运算相关知识 位运算 位运算示例 权限控制

  • 开发基础随笔之位运算符(Bitwise Operators)

    位运算符,属于算术运算符 按位逻辑运算符: 位移运算符: 位运算符的运算数只能是整数 位移运算符:按位左移 a<<...

  • 强大的位运算符

    位取反运算符 位取反运算符(~)是对所有位的数字进行取反操作位取反运算符.png 位与运算符 位与运算符(&)可以...

  • 位运算

    位运算 1. &:按位与 规律:一假则假任何位上的数和1相&得到的结果还是那个数 2. |:按位或 规律:一真则真...

  • 位运算

    https://leetcode.com/problems/gray-code/description/这个位运算...

  • 位运算

    位运算符比一般的算术运算符速度要快,而且可以实现一些算术运算符不能实现的功能。如果要开发高效率程序,位运算符是必不...

  • 位运算

    1.不用加减乘除做加法 解法:分为三步①各位相加不进位,即先按位异或;②做进位,按位与并左移位;③结果相加,直至没...

  • 位运算

    位运算不仅可以简化某些复杂的操作,而且具有更快的计算速度。典型的应用就是除法,交换两个数值,以及在一个数组中寻找只...

网友评论

      本文标题:位运算

      本文链接:https://www.haomeiwen.com/subject/qbagzttx.html