Go 中的位运算符用于对二进制数进行操作,例如按位与、按位或、按位异或等。本文将介绍 Go 中的位运算符及其使用方法。
位运算符:
Go 中的位运算符包括:
- 按位与运算符:&
- 按位或运算符:|
- 按位异或运算符:^
- 左移运算符:<<
- 右移运算符:>>
位运算符的使用方法:
位运算符的使用方法比较特殊,需要使用二进制数进行操作。例如:
代码语言:javascript复制package main
import "fmt"
func main() {
var a = 5 // 二进制表示为 0101
var b = 9 // 二进制表示为 1001
fmt.Printf("a & b is %d, binary is %bn", a&b, a&b)
fmt.Printf("a | b is %d, binary is %bn", a|b, a|b)
fmt.Printf("a ^ b is %d, binary is %bn", a^b, a^b)
fmt.Printf("a << 2 is %d, binary is %bn", a<<2, a<<2)
fmt.Printf("b >> 2 is %d, binary is %bn", b>>2, b>>2)
}
在上面的代码中,我们定义了两个整型变量 a
和 b
,然后使用位运算符对它们进行操作。
注意,在输出时,使用 %b 格式化输出二进制数。
完整的示例代码如下:
代码语言:javascript复制package main
import "fmt"
func main() {
var a = 5 // 二进制表示为 0101
var b = 9 // 二进制表示为 1001
fmt.Printf("a & b is %d, binary is %bn", a&b, a&b)
fmt.Printf("a | b is %d, binary is %bn", a|b, a|b)
fmt.Printf("a ^ b is %d, binary is %bn", a^b, a^b)
fmt.Printf("a << 2 is %d, binary is %bn", a<<2, a<<2)
fmt.Printf("b >> 2 is %d, binary is %bn", b>>2, b>>2)
}
输出:
代码语言:javascript复制a & b is 1, binary is 0001
a | b is 13, binary is 1101
a ^ b is 12, binary is 1100
a << 2 is 20, binary is 10100
b >> 2 is 2, binary is 0010
需要注意的是,位运算符只能用于整型数据类型,而且在使用左移和右移运算符时,右侧的参数必须是无符号整型。