sho*_*one 5 bit-manipulation go
根据规范,这个运算符被称为bit clear:
&^ bit clear (AND NOT) integers
Run Code Online (Sandbox Code Playgroud)
我以前从未听说过这样的操作员,我想知道它为什么有用.
它似乎采用左操作数并禁用右操作数中打开的所有位.是否有关于运营商的正式描述?我注意到的另一件事是它不是可交换的.Pococode与comarison ^:
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
Run Code Online (Sandbox Code Playgroud)
从符号(的串联&和^),名字"而不是"(以及术语"位清零"听起来很像"位设置"的对面),它似乎很明显的是A &^ B在做A & ^B(其中^是按位取反) .
通过检查运算符的真值表来备份:
fmt.Println(0 &^ 0); // 0
fmt.Println(0 &^ 1); // 0
fmt.Println(1 &^ 0); // 1
fmt.Println(1 &^ 1); // 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |