1、什么是位运算
位运算是指:直接对数的二进制进行计算操作,在程序中使用位运算进行操作,会大大提高程序的性能。
在计算机内部,数都是以二进制的形式进行存储的。(二进制数就是由0和1两个数码来表示的数。
若对二进制没有很了解可以去学习一下以下这个链接。
二进制(通俗简要版,一看就会)_二进制最简单的理解-CSDN博客
2、位运算基础操作
基本的位运算一共有六种,分别是:按位与运算、按位或运算、按位异或运算、取反运算、左移运算、右移运算。
其中除了取反运算为单目运算,其他都为双目运算。
2.1 按位与运算:
按位与运算符为 &
。其功能是对两个二进制数的每一个二进位进行与运算。
按位与运算规则:只有对应的两个二进位都为 1 时,结果位才为 1。
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
2.2 按位或运算:
按位或运算符为 |
。其功能对两个二进制数的每一个二进位进行或运算。
按位或运算规则:只要对应的两个二进位有一个为 1 时,结果位就为 1。
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
2.3 按位异或运算(XOR):
按位异或运算符为 ^
。其功能是对两个二进制数的每一个二进位进行异或运算。
按位异或运算规则:对应的两个二进位相异时,结果位为 1,二进位相同时则结果位为 0。
0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 0
2.4 取反运算(NOT):
取反运算符为 ~
。其功能是对一个二进制数的每一个二进位进行取反运算。
取反运算规则:使数字 1 变为 0,0 变为 1。
~0 = 1
~1 = 0
2.5 左移运算(SHL)和右移运算(SHR):
左移运算符为 <<
。其功能是对一个二进制数的各个二进位全部左移若干位(高位丢弃,低位补 0)。
右移运算符为 >>
。其功能是对一个二进制数的各个二进位全部右移若干位(低位丢弃,高位补 0)。