c- & | ^
背景
-
处理对象:二进制数
-
处理场景:更新二进制数
- 具体场景中存在两个数据,一个是任意数据(数据value),一个是自定义数据(数据key),key可以运算符特性设置,得到期望的结果。下列中value为1010 1010, key为0000 1111
- 下列示例只考虑正数,负数后续处理
1 &
规则:某位kv都为1则结果为1,其余为0
- 0&0 = 0、0&1 = 0、1&0 = 0 、1&1 = 1
作用:使用1保留原数据,使用0更新某位为0
- 1010 1010 & 0000 1111 = 0000 1010
2 |
规则:某位kv都为0则结果为0,其余为1
- 0&0 = 0、0&1 = 1、1&0 = 1 、1&1 = 1
作用:使用0保留原数据,使用1更新某位为1
- 1010 1010 | 0000 1111 = 1010 1111
3 ^
规则:某位kv相同为0,不同为1
- 0&0 = 0、0&1 = 1、1&0 = 1 、1&1 = 0
作用:用0保留原数据,用1取反, 支持取反
- 1010 1010 ^ 0000 1111 = 1010 0101
共有 0 条评论