做快手笔试题的时候,突然发现自己的这个漏洞,就总结一下
常用的运算符共 6 种,分别为与( & )、或( | )、异或( ^ )、取反( ~ )、左移( << )和右移( >> )。
首先我们要把比较的数字全部转化为二进制,然后,先看这三种:
& 只有两个对应位都为 1 时才为 1
| 只要两个对应位中有一个 1 时就为 1
^ 只有两个对应位不同时才为 1
举例:
~ 把数字的补码中的 0 和 1 全部取反(0 变为 1,1 变为 0)。
注:补码:在二进制表示下,正数的补码为其本身,负数的补码是其按位取反后加一,符号位(即第一位)不变。
举例:
num << i 表示将 的二进制表示向左移动 位所得的值。
num >> i 表示将 的二进制表示向右移动 位所得的值。
举例: