繁体   English   中英

&^运算符有什么作用?

[英]What does the &^ operator do?

根据规范,这个运算符被称为bit clear:

&^   bit clear (AND NOT)    integers

我以前从未听说过这样的操作员,我想知道它为什么有用。

它似乎采用左操作数并禁用右操作数中打开的所有位。 是否有关于运营商的正式描述? 我注意到的另一件事是它不是可交换的。 ^伪代码:

11110 &^ 100 //11010
11110  ^ 100 //11010

11110 &^ 0 //11110
11110  ^ 0 //11110

11110 &^ 11110 //0
11110  ^ 11110 //0

11110 &^ 111 //11000
11110  ^ 111 //11001

111 &^ 11110 //1
111  ^ 11110 //11001

从符号( &^的串联),名称“和不”(以及“bit clear”一词听起来与“bit set”相反),似乎A &^ B正在做A & ^B (其中^是按位反转)。

通过检查运算符的真值表来备份:

fmt.Println(0 &^ 0);    // 0
fmt.Println(0 &^ 1);    // 0
fmt.Println(1 &^ 0);    // 1
fmt.Println(1 &^ 1);    // 0

(见http://ideone.com/s4Pfe9 。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM