Golang中的位运算

位运算可能在平常的编程中使用的并不多,但涉及到底层优化,一些算法及源码可能会经常遇见。

位运算简单介绍:
  • 位与. &
  • 位或. |
  • 异或. ^
  • 左移. <<
  • 右移. >>

与操作:&

1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0

或操作:!

1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 & 0 = 0

异或:^

1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0

左移:<<

//右边空出的位用0填补
4 << 1 = 8
//步骤:
4:0000 0100
4<<1:0000 1000
0000 1000:8

右移:>>

//左边空出的位用0或者1填补
4 >> 1 = 2
//步骤
4:0000 0100
4>>1:0000 0010
0000 0010:2
举例几个用处:

1.使用&来判断一个数字是奇数还是偶数:num&1 == 1

2.使用^来判断两个数字是否为同号:(a ^ b) >= 0

3.使用|来设置位数:a |= num

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值