【Golang】位运算

Posted by 西维蜀黍 on 2020-07-31, Last Modified on 2021-09-21

& - 按位与运算符

按位与运算符"&“是双目运算符。 其功能是参与运算的两数各对应的二进位相与。

| - 按位或运算符

按位或运算符”|“是双目运算符。 其功能是参与运算的两数各对应的二进位相或。

^

  • 作为二元运算符,是一个按位异或运算符
package main

import "fmt"

func main() {
    x := 4
    y := 2
    // 0000 0100 + 0000 0010 = 0000 0110 = 6
    fmt.Println(x^y) // output: 6
  
    x := 4
    fmt.Println(^x) // output: -5
}

<< - 左移(变大)

左移运算符”«“是双目运算符。左移n位就是乘以2的n次方。 其功能把”«“左边的运算数的各二进位全部左移若干位,由”«“右边的数指定移动的位数,高位丢弃,低位补0。

>> - 右移(变小)

右移运算符”»“是双目运算符。右移n位就是除以2的n次方。 其功能是把”»“左边的运算数的各二进位全部右移若干位,"»“右边的数指定移动的位数。