提要:位操作符逻辑上可能要复杂一点因为习惯了使用十进制,而位操作符是基于二进制,由于机器更容易理解二进制语言,所以使用二进制的目的是提高运算速度。
(1)位非操作符:表示为 ~a 理解起来很简单就是转为二进制然后每一位这样操作如果是0换成1如果是1换成0,其操作结果的十进制表示相当于-a-1。
(2)位与操作符:标识为 a&b,计算法则是先把a,b转换成二进制,对齐,然后对a,b的同一位置进行比较,比较规则是0 0 ->0, 0 1->1, 1 0->1, 1 1->1,可以通过a&1来判断a的奇偶。
(3)异或操作符:表示为a^b, 计算法则是先把a,b转换成二进制,对齐,然后对a,b的同一位置进行比较,比较规则是0 0 ->0, 0 1->1, 1 0->1, 1 1->0,可以用来加密数字a^b^b=a。
(4)左移操作符:表示为a<<b,计算法则是把a转换成二进制,然后把二进制后面加b个1,可以用来代替部分乘法比如:3*8 -》 3<<3。
(5)右移操作符:表示为a>>b,计算法则是把a转换成二进制,然后把二进制从后往前去掉b位,可以用来代替部分除法比如:100/16 -》 100>>4。
除了以上用法,位操作符还可以用来:
1、两个数做交换:c=a^b, a=c^a, b=c^b.
2、判断两个数是否相等:a^b=0则a=b。