跳至主要内容

7.计算机不会做加法

为什么要学习位运算

  • 有些功能必须通过位运算才能实现:比如写调试器,判断CPU的各种状态位
  • 大公司面试题:比如2x8效率最高的实现方式

位运算

  • 与运算(and &)
    • 两个位都为1,结果才为1
  • 或运算(or |)
    • 两个只要有一个为1就是1
  • 异或运算(xor ^)
    • 不一样的时候是1
  • 非运算(not ~)
    • 0就是1 1就是0
  • 左移(shl <<)
    • 各二进位全部左移若干位,高位丢弃,低位补0
  • 右移(shr(前面补0)/sar(前面补1) >>)
    • 各二进位全部右移若干位,低位丢弃,高位补0或者补符号位

总结

  • 计算机只会位运算

关于本文

由 GuQing 撰写,采用 CC BY-NC 4.0 许可协议。