Go-运算符-位运算符

2023-04-20 16:43:30 浏览数 (1)

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)
}

在上面的代码中,我们定义了两个整型变量 ab,然后使用位运算符对它们进行操作。

注意,在输出时,使用 %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

需要注意的是,位运算符只能用于整型数据类型,而且在使用左移和右移运算符时,右侧的参数必须是无符号整型。

go

0 人点赞