Golang中位运算常见的运算符:&^

官方说明:[link]

解释:如果运算符右侧数值的第 i 位为 1,那么计算结果中的第 i 位为 0;如果运算符右侧数值的第 i 位为 0,那么计算结果中的第 i 位为运算符左侧数值的第 i 位的值。

举例说明

func main() {
 x := 11
 y := (1 << 0) | (1 << 3) //保证 z 中的第 0 位和第 3 位为 0
 z:= x &^ y
 fmt.Printf("x = %b\n", x)fmt.Println("\t\t&^")
 fmt.Printf("y = %b\n", y)
 fmt.Println("————————")
 fmt.Printf("z = %04b\n", z)
}



运算结果:

x = 1011
&^
y = 1001
————————
z = 0010

结果说明:

x = 11 = 1011。由于 y 中的第 0 位和第 3 位为 1,因此 z 中的第 0 位和第 3 位为 0。y 中的第 1 位和第 2 位为 0,因此,z 中第 1 位和第 2 位的值为 x 中第 1 位和第 2 位的值——1 和 0。所以 z 的值为 0010。

运算符作用

保证数值中的某些位一定为 0。

补充其余常见运算符

& 位运算 AND

|位运算 OR

^ 位运算 XOR

&^ 位清空 (AND NOT)

<< 左移

>> 右移

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NUS Coders

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值