因为用的比较少,我发现很难记住位运算。
下面就写个巧记法:
位与( & )
第一个操作数的的第n位于第二个操作数的第n位如果都是1,那么结果的第n为也为1,否则为0。
将2个操作数和结果都转换为二进制进行比较:
5&3 = 1
5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101
3转换为二进制:0000 0000 0000 0000 0000 0000 0000 0011
1转换为二进制:0000 0000 0000 0000 0000 0000 0000 0001
这个好记,其实和常用的逻辑运算符&&差不多,1看作true,0看作false。两个true才返回true。
不过这不魔道啊。马上就带大家看到它魔道的一面。
咱们把1看作男人。0看作女人。结果1表示有戏,0表示没戏。
果然和&符号一样,位与它是个弯的,还是男同才有戏,这……
位或( | )
第一个操作数的的第n位于第二个操作数的第n位 只要有一个是1,那么结果的第n为也为1,否则为0。
5|3 =7
5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101
3转换为二进制:0000 0000 0000 0000 0000 0000 0000 0011
7转换为二进制:0000 0000 0000 0000 0000 0000 0000 0111
第一种逻辑这个和逻辑的或差不多。有一个为true,结果就为true。
第二种逻辑:咱们把1看作男人。0看作女人。结果1表示有戏,0表示没戏。
看符文|,我还以为它是个直男,看二进制倒数第二第三位,结果最后一位暴露了本质。有个男的就有戏……
位异或( ^ )
位异或:第一个操作数的的第n位于第二个操作数的第n位 相反,那么结果的第n为也为1,否则为0。
5^3 = 6
5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101
3转换为二进制:0000 0000 0000 0000 0000 0000 0000 0011
6转换为二进制:0000 0000 0000 0000 0000 0000 0000 0110
这个三观终于到了男女搭配的主流三观了。^_^ 看看这个笑容……
这个微笑的眼睛就是异或啊。
其他
~位非:操作数的第n位为1,那么结果的第n位为0,反之亦然。
这个符号就是非常浪了。
完。
我是魔道晓树,觉得有意思或者有用的请点个赞。