Golang开发-逻辑运算符和位运算符

逻辑运算符

运算符 描述
&& 逻辑 AND 运算符:如果两边的操作数都是 True,则条件 True,否则为 False
// 逻辑 OR 运算符:如果两边的操作数有一个 True,则条件 True,否则为 False
逻辑 NOT 运算符:如果条件为 True,则逻辑 NOT 条件 False,否则为 True

逻辑 OR 运算符为:||(表格打不出来)

package main
import "fmt"
func main(){
	var a bool
	var b = true
    
	fmt.Println("a=",a)
	fmt.Println("b=",b)
	fmt.Println("a&&b=",a&&b)
	fmt.Println("a||b=",a||b)
	fmt.Println("!a=",!a)
	fmt.Println("!b=",!b)
}

运行结果为:

a= false
b= true
a&&b= false
a||b= true
!a= true
!b= false

位运算符

运算符 描述
& 按位与,使参与运算的两数各对应的二进位相与
/ 按位或:使参与运算的两数各对应的二进位相或
^ 按位异或:使参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。
<< 左移运算符:左移n位就是乘以2的n次方。 其功能把"<<“左边的运算数的各二进位全部左移若干位,”<<"右边的数指定移动的位数,高位丢弃,低位补0
>> 右移运算符:右移n位就是除以2的n次方。 其功能是把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数。
package main
import "fmt"
func main(){
var x uint=38
var y uint=21
fmt.Println("x&y=",x&y)
fmt.Println("x|y=",x|y)
fmt.Println("x^y=",x^y)
fmt.Println("x<<1=",x<<1)
fmt.Println("x>>1=",x>>1)
fmt.Println("y<<1=",y<<1)
fmt.Println("y>>1=",y>>1)
//x:100110
//y:010101
}

运行结果为:

x&y= 4
x|y= 55
x^y= 51
x<<1= 76
x>>1= 19
y<<1= 42
y>>1= 10

再举个例子:

package main

import "fmt"
const (
    i=1<<iota
    j=3<<iota
    k
    l
)
func main() {
    fmt.Println("i=",i)
    fmt.Println("j=",j)
    fmt.Println("k=",k)
    fmt.Println("l=",l)
}

运行结果为:

i= 1
j= 6
k= 12
l= 24

iota的用法参考:Golang开发-常量和变量

你可能感兴趣的:(go,go)