对golang中的位清除(&^)很模糊,它实际上就是先异或后与,但是我实在不清楚位清除有哪些作用?
a := 6 //0110
b := 11 //1011 => ^b == 0100 => 0100^0110 == 0100 == 4
a &^ b == 4
a & ^b == 4
有疑问加站长微信联系(非本文作者)

对golang中的位清除(&^)很模糊,它实际上就是先异或后与,但是我实在不清楚位清除有哪些作用?
a := 6 //0110
b := 11 //1011 => ^b == 0100 => 0100^0110 == 0100 == 4
a &^ b == 4
a & ^b == 4
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
在一些算法中经常会用到,比如位图;以及一些底层的代码,毕竟高效。
@channel 上面写错了,应该是先取反后与。
能举个例子么?
比如,社交网站经常用一个 int 类型的字段存用户设置的各种隐私信息,这其中就涉及到位设置和位清除