位运算(与、或、异或、取反)

介绍

本文介绍位运算,有以下几种:

  • 与
  • 或
  • 异或
  • 取反

例子

假设有以下变量:

A = 60
B = 13

现在以二进制格式表示,如下:

A = 0011 1100
B = 0000 1101

与 运算

按照二进制位进行运算,只有两个位都是 1 的时候结果才是 1 ,否则是0

运算符:&

A&B 执行过程如下:

A    = 0011 1100
&
B    = 0000 1101
结果 = 0000 1100

用途

快速取模算法
保留高 4 位

例子:保留高4位

保留 30 的 高4位(保留左侧4位),30 的二进制是 00011110,与上 11110000,执行过程如下:

30的二进制:00011110
&操作
           11110000
结果:      00010000 (保留30高4位,即:左侧4位)

或 运算

按照二进制位进行 或 运算,只要有一个是 1,结果就是 1

运算符:|

A|B = 0011 1100 | 0000 1101 = 0011 1101

异或 运算

异或,exclusive OR,缩写成 XOR

按照二进制位进行运算

  • 如果a、b两个值 不相同,异或结果为 1
  • 如果a、b两个值 相同 ,异或结果为 0
a b 异或结果
0 0 0
0 1 1
1 0 1
1 1 0

运算符:^

取反运算

取反,很简单,就是 如果是 0 就返回 1,如果是 1 就返回 0,是单目运算符

运算符:~

~A  = 1100 0011

参考:
https://blog.csdn.net/w8y56f/article/details/116402868
https://blog.csdn.net/niitlcj/article/details/77595248
https://www.cnblogs.com/thrillerz/p/4530108.html


原文出处:/show_1IX4sDGM8PRy.html