Go语言位运算符总结. 在 Golang 中,位运算符主要是用于数值类型的二进制的运算。. 按位与的运算规则是,如果两数对应的二进制位都为 1,那么结果为 1, 否则结果为 0。. 按位或的运算规则是如果两数对应的二进制位有一个为 1,那么结果为 1, 否则结果为 0。. 按位异或的运算规则是如果两数对应的二进制位不同,那么结果为 1, 否则结果为 0。. 左移的运算规则是左移 N 位,就是乘以 2 的 N 次方。. 右移的运算规则是右移 N 位,就是除以 2 的 N 次方。.
位运算符,对整数在内存中的二进制位进行操作
aa := 1 //二进制001
bb := 5 //二进制101
fmt.Println(aa & bb) //参与运算的两数各对应的二进位相与(两位均为一才为1)
//如 001
// 101
//结果为001
//1对1为1,0与0为0,1对0为0,所以结果为001,转换为10进制就是1
fmt.Println(aa | bb) //二进位相或,两位有一个为1就为1,所以结果为101,10进制5
fmt.Println(aa ^ bb) //相异或,当对应二进位相异时结果为1(两位不一样则为1),100,10进制4
fmt.Println(1 << 2) //左移n位就是乘以2的n次方,“a<<b”就是把a的各二进位全部左移b位,高位丢弃,低位补0,结果为100,就是4
fmt.Println(4 >> 2) //右移n位就是除以2的n次方,“a>>b”就是把a的各二进位全部右移b位,100右移2为就是1
风真温柔,暖暖的