go语法--基础07--运算符

一、运算符类别

算术运算符
关系运算符
逻辑运算符
位运算符
赋值运算符
其他运算符

1.1、算术运算符

在这里插入图片描述

案例1
package main

import (
	"fmt"
)

func main() {
	var a int = 10
	var b int = 20
	var c int

	c = a + b
	fmt.Printf("第一行  c 的值为 %d\n", c )
	c = a - b
	fmt.Printf("第二行  c 的值为 %d\n", c )
	c = a * b
	fmt.Printf("第三行  c 的值为 %d\n", c )
	c = a / b
	fmt.Printf("第四行  c 的值为 %d\n", c )
	c = a % b
	fmt.Printf("第五行  c 的值为 %d\n", c )
	a++
	fmt.Printf("第六行  a 的值为 %d\n", a )
	a=10   // 为了方便测试,a 这里重新赋值为 21
	a--
	fmt.Printf("第七行  a 的值为 %d\n", a )
}


输出
第一行  c 的值为 30
第二行  c 的值为 -10
第三行  c 的值为 200
第四行  c 的值为 0
第五行  c 的值为 10
第六行  a 的值为 11
第七行  a 的值为 9


1.2、关系运算符

在这里插入图片描述

案例1
package main

import (
	"fmt"
)
func main() {
	var a int = 10
	var b int = 20

	if( a == b ) {
		fmt.Printf("第一行  a  等于 b\n" )
	} else {
		fmt.Printf("第一行  a  不等于 b\n" )
	}
	if ( a < b ) {
		fmt.Printf("第二行  a  小于 b\n" )
	} else {
		fmt.Printf("第二行  a  不小于 b\n" )
	}

	if ( a > b ) {
		fmt.Printf("第三行  a  大于 b\n" )
	} else {
		fmt.Printf("第三行  a  不大于 b\n" )
	}


	if ( a <= b ) {
		fmt.Printf("第四行  a  小于等于 b\n" )
	}
	if ( b >= a ) {
		fmt.Printf("第五行  b 大于等于 a\n" )
	}
}


输出:
第一行  a  不等于 b
第二行  a  小于 b
第三行  a  不大于 b
第四行  a  小于等于 b
第五行  b 大于等于 a

1.3、逻辑运算符

在这里插入图片描述

案例1
package main

import (
	"fmt"
)

func main() {
	var a bool = true
	var b bool = false

	if (a && b) {
		fmt.Printf("第一行 - 条件为 true\n")
	} else {
		fmt.Printf("第一行 - 条件为 false\n")
	}
	
	if (a || b) {
		fmt.Printf("第二行 - 条件为 true\n")
	}

	if (!(a && b)) {
		fmt.Printf("第三行 - 条件为 true\n")
	}
}

输出
第一行 - 条件为 false
第二行 - 条件为 true
第三行 - 条件为 true



1.4、位运算符

在这里插入图片描述

假定 A = 60; B = 13; 其二进制数转换为:
A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A|B = 0011 1101

//异或,不一样为1
A^B = 0011 0001 

在这里插入图片描述

案例1
package main

import "fmt"

func main() {

	var a uint = 60      /* 60 = 0011 1100 */
	var b uint = 13      /* 13 = 0000 1101 */
	var c uint = 0

	c = a & b       /* 12 = 0000 1100 */
	fmt.Printf("第一行 - c 的值为 %d\n", c )

	c = a | b       /* 61 = 0011 1101 */
	fmt.Printf("第二行 - c 的值为 %d\n", c )

	c = a ^ b       /* 49 = 0011 0001 */
	fmt.Printf("第三行 - c 的值为 %d\n", c )

	c = a << 2     /* 240 = 1111 0000 */
	fmt.Printf("第四行 - c 的值为 %d\n", c )

	c = a >> 2     /* 15 = 0000 1111 */
	fmt.Printf("第五行 - c 的值为 %d\n", c )
}


输出
第一行 - c 的值为 12
第二行 - c 的值为 61
第三行 - c 的值为 49
第四行 - c 的值为 240
第五行 - c 的值为 15

1.5、赋值运算符

在这里插入图片描述

案例1
package main

import "fmt"

func main() {
	var a int = 4
	var c int

	c =  a
	fmt.Printf("第 1 行 : =  运算符实例,c 值为 = %d\n", c )

	c +=  a
	fmt.Printf("第 2 行 : += 运算符实例,c 值为 = %d\n", c )

	c -=  a
	fmt.Printf("第 3 行 : -= 运算符实例,c 值为 = %d\n", c )

	c *=  a
	fmt.Printf("第 4 行 : *= 运算符实例,c 值为 = %d\n", c )

	c /=  a
	fmt.Printf("第 5 行 : /= 运算符实例,c 值为 = %d\n", c )

	c  = 4;

	c <<=  2
	fmt.Printf("第 6行  - <<= 运算符实例,c 值为 = %d\n", c )

	c >>=  2
	fmt.Printf("第 7 行 : >>= 运算符实例,c 值为 = %d\n", c )

	c &=  2
	fmt.Printf("第 8 行 : &= 运算符实例,c 值为 = %d\n", c )

	c ^=  2
	fmt.Printf("第 9 行 : ^= 运算符实例,c 值为 = %d\n", c )

	c |=  2
	fmt.Printf("第 10 行 : |= 运算符实例,c 值为 = %d\n", c )

}

输出
第 1 行 : =  运算符实例,c 值为 = 4
第 2 行 : += 运算符实例,c 值为 = 8
第 3 行 : -= 运算符实例,c 值为 = 4
第 4 行 : *= 运算符实例,c 值为 = 16
第 5 行 : /= 运算符实例,c 值为 = 4
第 6行  - <<= 运算符实例,c 值为 = 16
第 7 行 : >>= 运算符实例,c 值为 = 4
第 8 行 : &= 运算符实例,c 值为 = 0
第 9 行 : ^= 运算符实例,c 值为 = 2
第 10 行 : |= 运算符实例,c 值为 = 2

1.6、其他运算符

在这里插入图片描述

案例1
package main

import "fmt"

func main() {
	var a int = 4
	var b int32
	var c float32
	var d  *int

	/* 运算符实例 */

	fmt.Printf("第 1 行 : a 变量类型为 = %T\n", a );
	fmt.Printf("第 2 行 : b 变量类型为 = %T\n", b );
	fmt.Printf("第 3 行 : c 变量类型为 = %T\n", c );

	//  & 和 * 运算符
	// d 包含了  a  变量的地址
	d = &a
	fmt.Printf("a 内存地址为  %d\n", d);
	fmt.Printf("*d 指针值为 %d\n", *d);
}

输出
第 1 行 : a 变量类型为 = int
第 2 行 : b 变量类型为 = int32
第 3 行 : c 变量类型为 = float32
a 内存地址为  824633761992
*d 指针值为 4


二、运算符优先级

在这里插入图片描述

你可以通过使用括号来临时提升某个表达式的整体运算优先级。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值