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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。