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