Go 语言提供了对位的内置支持,以在位包的帮助下为预先声明的无符号整数类型实现位计数和操作功能。这个包提供了RotateLeft64()函数,用于将左旋转 (k mod 64) 位并将右旋转 k 位,您需要调用 RotateLeft64(a, -k)。要访问 RotateLeft64()函数,您需要借助 import 关键字在程序中添加一个 math/bits 包。
句法:
func RotateLeft64(a uint64, k int) uint64
参数:该函数有两个参数,即 uint64 类型的 a 和 int 类型的 k。
返回值:此函数返回 uint64 类型的旋转(向左或向右)值。
示例 1:
// Golang program to illustrate bits.RotateLeft64() Function
package main
import (
"fmt"
"math/bits"
)
// Main function
func main() {
// Using RotateLeft64() function
var a uint64 = 6
b := bits.RotateLeft64(a, 5)
fmt.Printf("Original: %b", a)
fmt.Printf("\nAfter Rotation(Left): %b", b)
}
输出:
Original: 110
After Rotation(Left): 11000000
示例 2:
// Golang program to illustrate bits.RotateLeft64() Function
package main
import (
"fmt"
"math/bits"
)
// Main function
func main() {
// Using RotateLeft64() function
var a uint64 = 5
b := bits.RotateLeft64(a, -1)
fmt.Printf("Original: %b", a)
fmt.Printf("\nAfter Rotation(Right): %b", b)
}
输出:
Original: 101
After Rotation(Right): 1000000000000000000000000000000000000000000000000000000000000010