快捷搜索: 王者荣耀 脱发

Go语言位运算符|与、或、异或、左移、右移

第一个:& 按位与

运算规则:如果两数对应的二进制位都为 1,那么结果为 1, 否则结果为 0。

第二个:|按位或

运算规则:如果两数对应的二进制位有一个为 1,那么结果为 1, 否则结果为 0。

第三个:^ 按位异或

运算规则:如果两数对应的二进制位不同,那么结果为 1, 否则结果为 0。

第四个:<< 左移

运算规则:左移N位,就是乘以 2 的 N 次方。

第五个:>> 右移

运算规则:右移 N 位,就是除以 2 的 N 次方

举例子:

package main

import (
	"fmt"
)

func main() {
	var a = 15       // 0000 1111
	var b = 7        // 0000 0111
	var c = a & b    // a & b = 0000 0111 = 7
	var d = a | b    // a | b = 0000 1111 = 15
	var e = a ^ b    // a ^ b = 0000 1000 = 8
	var f = 128 << 3 // 128 乘以 2^3 = 1024
	var g = 128 >> 3 // 128 除以 2^3 = 16

	fmt.Println("c = ", c)
	fmt.Println("d = ", d)
	fmt.Println("e = ", e)
	fmt.Println(f)
	fmt.Println(g)
}

就这些。

经验分享 程序员 微信小程序 职场和发展