位操作运算符
【&与运算|或运算】
运算:参与运算的两数对应的二进制相与
eg: 13&17=?
13的二进制数为:1101,17的二进制数为:10001
13&17=(01101)&(10001)=(00001)=1
运算:参与运算的两数对应的二进制相或
同理以 13 | 17=?为例,
13 | 17=(01101)|(10001)=(11101)=29
【<<、>> 移位运算】
以17为例:17的二进制为10001
左移运算符:高位丢弃,低位补0。位数由定义决定,如(17)int 就有32位,<<左移运算相当于乘以2的幂次,次数有<<后面的数决定:
eg:17<<1=(10001)<<1=(00010)=2
右移运算符:右移n位相当于除以2的n次方,注意:在右移时符号位随同移动。当为整数时,最高位补0,为负数时,符号位为1,补0还是补1取决于编译系统规定。
【异或运算符^】
参加预算的两个数,如果相应位为“异”,则该位为1,否则为0
特殊使用:
1.使特定位翻转,对应X要翻转的各位,该数的对应位为1,其余为0,用次数与预算数异或即可
2.与0疑惑保留原值
【取反运算~】
参加运算的数的二进制位按位取反即可。
真正的大师永远怀着一颗学徒的心。

浙公网安备 33010602011771号