介绍
本文介绍位运算,有以下几种:
- 与
- 或
- 异或
- 取反
例子
假设有以下变量:
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