多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 位运算符 >[info] 位运算符对整数在内存中的 **二进制** 位进行操作。 | 运算符 | 描述 | | :-: | :-: | | & | 参与运算的两数各对应的二进位相与(两位均为1才为1)| | \| | 参与运算的两数各对应的二进位相或(两位有一个为1就为1) | | ^ | 参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1 (两位不一样则为1) | | << | 左移n位就是乘以2的n次方("a << b"是把a的各二进位全部左移b位,高位丢弃,低位补0) | | >> | 右移n位就是除以2的n次方("a >> b"是把a的各二进位全部右移b位) ```go a := 6 // 110 b := 5 // 101 fmt.Printf("a: %b, b: %b\n", a, b) fmt.Println(a & b) // 100 = 2^2 fmt.Println(a | b) // 111 = 2^2 + 2^1 + 2^0 fmt.Println(a ^ b) // 011 = 2^1 + 2^0 fmt.Println(a << b) // 11000000 = 2^7 + 2^6 fmt.Println(a >> b) // 0000 // 运行结果: // a: 110, b: 101 // 4 // 7 // 3 // 192 // 0 ```