Go语言入门8---基本数据——算术运算符|Go主题月

161 阅读1分钟

基本数据——算术运算符

一、运算符

1.1算术运算符

+ - * / %(求余) ++ --

1.2关系运算符

== !=  > < >= <=

package main

import "fmt"

func main() {
	/*
	算术运算符:+ - * / %(求余) ++ --

	关系运算符:== !=  > < >= <=
	 */
	a:=10
	b:=3
	sum:=a+b
	fmt.Printf("%d+%d=%d\n",a,b,sum)

	sub:=a-b
	fmt.Printf("%d-%d=%d\n",a,b,sub)

	mul:=a*b
	fmt.Printf("%d*%d=%d\n",a,b,mul)

	//取商
	//取余
	div:=a/b
	mod:=a%b
	fmt.Printf("%d/%d=%d\n",a,b,div)
	fmt.Printf("%d %% %d=%d\n",a,b,mod)

	c:=3
	c++
	fmt.Println(c)
	c--
	fmt.Println(c)

	a1:=3
	b1:=5
	c1:=3
	rest1:=a1>b1
	rest2:=b1>c1
	fmt.Printf("%T,%t\n",rest1,rest1)
	fmt.Printf("%T,%t\n",rest2,rest2)

	rest3:= a==b
	fmt.Printf("%T,%t",rest3,rest3)

}

image.png

1.3逻辑运算符

&& ||

操作数必须是bool,运算结果也是bool

&&:所有操作数都为真,结果为真,一个为假,结果为假。“一假则假,全真为真”

||:“一真则真,全假为假”

!:相反

package main

import "fmt"

func main() {

	f1:=true
	f2:=false
	f3:=true
	rest1:=f1&&f2
	fmt.Printf("rest1:%t\n",rest1)

	rest2:=f1&&f2&&f3
	fmt.Printf("rest2:%t\n",rest2)

	rest3:=f1||f2
	fmt.Printf("rest3:%t\n",rest3)
	rest4:=f1||f2||f3
	fmt.Printf("rest4:%t\n",rest4)
	fmt.Println(false||false||false)

	a:=3
	b:=2
	c:=5
	rest5:= a>b && a==b && a<(c/b)
	fmt.Println(rest5)
}

image.png

1.3位运算符

 & | ^ &^

按位&:对应值都为1才为1,有一个为0就位0

按位|:对应的值如果都是0才为0,有一个为1就是1

异或^:

  • 二元:a^b:对应值不同为1,相同为0
  • 一元:^a 按位取反,1->0,0->1

位清空&^: 对于a%^b,对于b上的每个数值,如果为0,则取a对应位上的数值,如果为1,则结果位就取0

package main

import "fmt"

func main() {

	a:=60
	b:=13
	fmt.Printf("%d,%b\n",a,a)
	fmt.Printf("%d,%b\n",b,b)
	/*
	a:60 0011 1100
	b:13 0000 1101

	&:12 0000 1100
	|:61 0011 1101
	^:49 0011 0001
   &^:48 0011 0000
 	*/
	rest1:=a&b
	fmt.Println(rest1)

	rest2:=a|b
	fmt.Println(rest2)

	rest3:=a^b
	fmt.Println(rest3)

	rest4:=a&^b
	fmt.Println(rest4)
}

image.png