go-位运算符的妙用

&运算

  1. 有效清除指定位的bit值

var x uint=0xAC

x=x & 0xF0  //清除后四个bit位  也可以写成 x &= 0xF0

      2. 判断奇偶

   if  x & 1 == 1 { 

      fmt.Println(“odd number”)

   } else {

      fmt.Println(“even number”)

   }

| 运算

  1. 使用OR操作来有选择的设置给定整数的某个位,比如与0x0F进行或运算,将低四位设置为1
  2. 结合使用&和| 可以实现将位作为配置信息,配置和读取不同位的值。

^操作

  1. 一个数与0x00做异或,则该数保持不变
  2. 一个数与0xff做异或,则该数的各bit位取反
  3. XOR的一个实际用途就是判定符号,(a^b)>=0判定两个数的符号是否相同
  4. 异或操作符作为一元操作符,功能是取反,相当于和0xff做异或。

&^操作

X &^ Y 当Y的位值为0则取X的对应位的值,否则清除X对应位的值(即取值为0)

<<和>>操作

对无符号数每次移动,最低有效位用0填充,相反的,使用右移操作位时,最高有效位用0填充。

当一个有符号值(左移)移位时,Go自动使用算数移位。在右移操作中,符号位被拷贝(或者扩展)来填充移动的位置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值