GO语言从学会到学废系列-tasks2-运算符

算数运算符、关系运算符、逻辑运算符、位算符(内存操作)、赋值运算符、其他运算符(指针取地址数值)

算数运算符

设A=10 B=20

运算符

描述

实例

+

相加

A+B=30

-

相减

A-B=-10

*

相乘

A*B=200

/

相除

B/A=2

%

求余

B%A=0

++

自增

A++ =11

--

自减

A-- =9

package main import "fmt" func main() { var a int = 10 var b int = 3 //var c int // + - * / % ++ -- fmt.Println(a + b) fmt.Println(a - b) fmt.Println(a * b) fmt.Println(a % b) a++ fmt.Println(a) a-- fmt.Println(a) }

关系运算符

设A=10 B=20 关系运算符返回结果都是 bool值

运算符

描述

实例

==

检查两个值是否相等,如果相等返回True否则返回False

A == B 为False

!=

检查两个值是否不相等,如果不相等返回True,否则返回False

A != B 为True

>

检查左边值是否大于右边值,如果是返回True,否则返回False

A > B 为False

检查左边值是否小于右边值,如果是返回True,否则返回False

A < B 为True

>=

检查左边值是否大于等于右边值,如果是返回True,否则返回False

A >= B 为False

检查左边值是否小于等于右边值,如果是返回True,否则返回False

A

package main import "fmt" func main() { var a int = 11 var b int = 10 fmt.Println(a == b) fmt.Println(a != b) fmt.Println(a > b) fmt.Println(a < b) fmt.Println(a >= b) fmt.Println(a <= b) //判断 if 如果 ... 结构 if a > b { fmt.Println(1) } else if a < b { fmt.Println(2) } else { fmt.Println(3) } }

逻辑运算符

设A为True 设B为False

运算符

描述

实例

&&

逻辑AND运算符。如果两边的操作都是True,则条件True,否则为False

A && B 为False

||

逻辑OR运算符,如果两边的操作数有一个True,则条件为True,否则为False

A || B 为True

!

逻辑NOT运算符。如果条件为True,则逻辑NOT条件False,否则为True

!(A && B) True

package main import "fmt" func main() { var a bool = true var b bool = false //逻辑 && 与 两边条件都要满足才为真 其他情况为假 if a && b { fmt.Println(a && b) } fmt.Println(a && b) //false //逻辑或 || 其中一个满足则为真 两边都满足为真 其他情况为假 if a || b { fmt.Println(a || b) } fmt.Println(a || b) //True //逻辑非 否定 原来结果为真,结果就为假 原来结果为假,结果就为真 fmt.Println(!a) //false fmt.Println(!b) //True }

位算符

设A=60 B=13 位运算符是针对二进制的

运算符

描述

实例

&

按位与运算符“&”是双目运算符。都是1结果为1,否则为0

A&B结果为12,二进制位0000 1100

|

按位或运算符“|”是双目运算符。都是0结果为0,否则是1

A|B 结果为61 二进制 0011 1101

^

按位异或运算符“^”是双目运算符。不同则为1,相同为0

A^B 结果为49 二进制 0011 0001

&^

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

A&^B结果为48 二进制 0011 0000

左移运算符“

A

>>

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

A>>2 结果为15 二进制位0000 1111

package main import "fmt" func main() { //二进制 0 1 //位运算: 都是针对二进制的 0 false 1 true //& 我和你 1 1 结果才是1 //| 我或你 0 0 结果才是0 //^ 相同为0 不同为1 // &^ a &^ b 前后二进制对应,b为0取a对应的数值,b为1则取0 // >> 2 // << 2 //60 0011 1100 //13 0000 1101 //------------- //& 0000 1100 //| 0011 1101 //^ 0011 0001 var a uint = 60 var b uint = 13 //位运算 & var c uint = 0 c = a & b fmt.Printf("%d,二进制%b\n", c, c) //位运算 | c = a | b fmt.Printf("%d,二进制%b\n", c, c) //位运算 ^ c = a ^ b fmt.Printf("%d,二进制%b\n", c, c) //位运算符 << //60 0011 1100 // 1111 0000 c = a << 2 //向左移动2位 fmt.Printf("%d,二进制%b\n", c, c) //位运算符 >> //60 0011 1100 // 0000 1111 a = 60 c = a >> 2 //向右移动2位 fmt.Printf("%d,二进制%b\n", c, c) }

赋值运算符

运算符

描述

实例

=

将一个表达式的值赋给左边

C=A+B 表达式结果赋值给C

+=

相加后赋值

C+= A 等于 C= C+A

-=

相减后赋值

C-=A 等于 C=C-A

*=

相乘后赋值

C*=A 等于 C=C*A

/=

相除后赋值

C/=A 等于 C=C/A

%=

取余后赋值

C%=A 等于 C=C%A

左移赋值

C

>>=

右移赋值

C>>=A 等于 C=C>>A

&=

按位与后赋值

C&=A 等于 C=C&A

^=

按位异或后赋值

C^=A 等于 C=C^A

|=

按位或后赋值

C|=A 等于 C=C|A

package main import "fmt" func main() { var a int = 21 var b int b += a //21 fmt.Println(b) }

其他运算符

运算符

描述

实例

&

返回变量存储地址

&a;将给出变量的实际地址

*

指针变量

*a;是一个指针变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值