【Go语言运算符】

package main

import "fmt"

/*
	运算符
*/
func main() {
	demo06Func01()
	demo06Func02()
	demo06Func03()
	demo06Func04()
	demo06Func05()
	demo06Func06()
}

/*
	算数运算符
				+ - * / % ++ --
*/
func demo06Func01() {
	a := 1
	b := 2
	//c := a++
	//d := b--
	fmt.Printf("a + b = %d\n", a+b)
	fmt.Printf("a - b = %d\n", a-b)
	fmt.Printf("a * b = %d\n", a*b)
	fmt.Printf("a / b = %d\n", a/b)
	fmt.Printf("a %s b = %d\n", "%", a%b)
	a++
	fmt.Println("a++ = ", a)
	b--
	fmt.Println("b-- = ", b)
}

/*
	关系运算符 关系运算符返回的都是布尔值
			== != > < >= <=
*/
func demo06Func02() {
	a := 1
	b := 2
	fmt.Printf("%d == %d = %t\n", a, b, a == b)
	fmt.Printf("%d != %d = %t\n", a, b, a != b)
	fmt.Printf("%d > %d = %t\n", a, b, a > b)
	fmt.Printf("%d < %d = %t\n", a, b, a < b)
	fmt.Printf("%d >= %d = %t\n", a, b, a >= b)
	fmt.Printf("%d <= %d = %t\n", a, b, a <= b)
}

/*
	逻辑运算符
		&&  全真为真
		||  全假为假
		!   取反
*/
func demo06Func03() {
	var a bool = true
	var b bool = false
	fmt.Printf("a && b 为 %t\n", a && b)
	fmt.Printf("a || b 为 %t\n", a || b)
	fmt.Printf("!a 为 %t\n", !a)
	fmt.Printf("!b 为 %t\n", !b)
}

/*
	逻辑运算符
*/
func demo06Func04() {
	var name string = "丁修"
	var age int64 = 18
	var sex string = "男"

	fmt.Println(name == "丁修")
	fmt.Println(age == 18)
	fmt.Println(sex == "男")

	if "丁修" == name && age == 18 && sex == "男" {
		fmt.Println("身份正确可以通行")
	}
}

/*
	位运算符(二进制)
		&		按位与运算符“&”是双目运算符,都是1结果为1,否则为0
		|		按位或运算符“|”是双目运算符,都是0结果为0,否则是1
		^		按位异或运算符"^"是双目运算符,不同则为1,相同则为0
		&^		未清空,a&^b,对于b上的每个数值,如果为0,则取a对应位上的数值,如果为1,则取0
		<<		左移运算符“<<”是双目运算符,左移n位就是乘以2的n次方,其功能就是把“<<”左边的运算数的各二进制位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0
		>>		右移运算符“>>”是双目运算符,右移n位就是除以2的n次方,其功能就是把“>>”左边的运算数的各二进制位全部右移若干位,由">>"右边的数指定移动的位数,高位丢弃,低位补0

*/
func demo06Func05() {
	var A int64 = 60
	var B int64 = 13
	/*
		二进制
				60 0011 1100
				13 0000 1101

				&  0000 1100  12
				|  0011 1101  61
				^  0011 0001  49



	*/

	fmt.Printf("%d & %d = %d\n", A, B, A&B)
	fmt.Printf("%d | %d = %d\n", A, B, A|B)
	fmt.Printf("%d ^ %d = %d\n", A, B, A^B)
	fmt.Printf("%d &^ %d = %d\n", A, B, A&^B)
	fmt.Printf("%d << %d = %d\n", A, 2, A<<2)
	fmt.Printf("%d >> %d = %d\n", A, 2, A>>2)
}

/*
	赋值运算符
		常用
			=			简单的赋值运算符,将一个表达式的值赋给一个左值
			+=			相加之后再赋值
			-=			相减之后再赋值
			*=			相乘之后再赋值
			/=			相除之后再赋值
			%=			求余之后再赋值

		不常用
			<<=			左移后赋值
			>>=			右移后赋值
			&=			按位与后赋值
			^=			按位异或赋值
			|= 			按位或后赋值

*/
func demo06Func06() {
	var a int = 21
	var b int = 20

	fmt.Printf("a = %d\n", a)
	b += a
	fmt.Printf("b += %d = %d\n", a, b)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值