17 08 2020

前言

位运算符的计算主要用在二进制中。实际开发中也经常会遇到需要用到这些运算符的时候,同时这些运算符也被作为基础的面试笔试题。所以了解这些运算符对程序员来说是十分必要的。

位运算符

如果以开关开灯论:
有这样两个开关,0为开关关闭,1为开关打开。

与(&)运算

与运算进行的是这样的算法:

  1. 0&0=0,0&1=0,1&0=0,1&1=1

在与运算中两个开关是串联的,如果我们要开灯,需要两个开关都打开灯才会打开。

理解为A与B都打开,则开灯,所以是1&1=1。

任意一个开关没打开,都不开灯,所以其他运算都是0。

通俗理解为A(与)&B都开则开,否则关。

非(~)运算

非运算即取反运算,在二进制中1变0,0变1。

如:110101进行非运算后为001010,即1010

或(|)运算

或运算进行的是这样的算法:

  1. 0|0=0,0|1=1,1|0=1,1|1=1

在或运算中两个开关是并联的,即一个开关开,则灯开。

如果任意一个开关开了,灯都会亮。

只有当两个开关都是关的,灯才不开。

理解为A(或)|B任意开则开。

异或(^)运算

异或运算通俗地讲就是一句话:同为假,异为真。

所以它是这样的算法:

  1. 0^0=0,0^1=1,1^0=1,1^1=0
延伸阅读
  1. Java 代码块及代码块和构造方法的执行顺序
  2. java8新特性有哪些
  3. 抽象类(abstract class)和接口(interface)有什么异同
  4. 位运算符:与(&)、非(~)、或(|)、异或(^)
  5. 【面试题】实现打印26个数字和26个字母交替打印
发表评论