Go 语言位操作详解:原理、运算符及示例代码
Go 语言中的位操作符有以下几种:
-
位与(&) :两个位都为 1 时,结果才为 1,否则为 0。
-
位或(|) :两个位都为 0 时,结果才为 0,否则为 1。
-
位异或(^) :两个位相同为 0,不同为 1。
-
位清空(&^) :将第二个操作数中为 1 的位,对应的第一个操作数中的位清零。
-
左移(<<) :将二进制数向左移动指定的位数,低位补 0。
-
右移(>>) :将二进制数向右移动指定的位数,高位补 0 或 1(取决于符号位)。
示例代码:
package main
import "fmt"
func main() {
var a uint8 = 60 // 00111100
var b uint8 = 13 // 00001101
// 位与(&)
fmt.Printf("%b & %b = %b\n", a, b, a&b) // 00001100
// 位或(|)
fmt.Printf("%b | %b = %b\n", a, b, a|b) // 00111101
// 位异或(^)
fmt.Printf("%b ^ %b = %b\n", a, b, a^b) // 00110001
// 位清空(&^)
fmt.Printf("%b &^ %b = %b\n", a, b, a&^b) // 00110000
// 左移(<<)
fmt.Printf("%b << 2 = %b\n", a, a<<2) // 11110000
// 右移(>>)
fmt.Printf("%b >> 2 = %b\n", a, a>>2) // 00001111
}
原文地址: https://www.cveoy.top/t/topic/kik4 著作权归作者所有。请勿转载和采集!