Go 的位运算符
1 | // 这四个就不介绍了 |
Go语言的标准库中提供了一些与位运算相关的函数。以下是一些常用的函数:
bits.OnesCount
:返回一个无符号整数的二进制表示中有多少个1。
1 | import "math/bits" |
如果我们自己实现这个 OnesCount 可以怎么做呢?
答案:
不停地 & 1 然后循环右移,如果 &1 后是1,说明末尾是1,则计数器++
bits.RotateLeft
:将一个无符号整数的二进制表示向左循环移动指定的位数。
1 | import "math/bits" |
bits.RotateRight
:将一个无符号整数的二进制表示向右循环移动指定的位数。
1 | import "math/bits" |
bits.Reverse
:反转一个无符号整数的二进制表示。
1 | import "math/bits" |
这些函数可以在 math/bits
包中找到,并且提供了高效的位运算实现。在处理位级操作时,这些函数可以提供便利并且保证了跨平台的一致性。