(四)Golang运算符

一、运算符

1.1 算数运算符

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

用例:

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 // 取商
	fmt.Printf("%d / %d = %d\n", a, b, div)

	mod := a % b // 取余
	fmt.Printf("%d %% %d = %d\n", a, b, mod)
	
	c := 3
	c ++
	fmt.Println("c = ", c)

	d := 3
	d --
	fmt.Println("d = ", d)
}

控制台输出:

$ go run xxx.go
10 + 3 = 13
10 - 3 = 7
10 * 3 = 30
10 / 3 = 3
10 % 3 = 1
c =  4
d =  2

1.2 关系运算符

== != > < >= <=

1.3 逻辑运算符

&& || !

1.4 位运算符

& | ^ &^ << >>

1.4.1 位运算

ABA&BA|BA^B
00000
01011
11110
10011

用例:假设A为60,B为13

运算描述示例
&二进制与操作副本位的结果,如果它存在于两个操作数(A&B) = 12,也就是0000 1100
|二进制或操作副本,如果它存在一个操作数(A|B) = 61,也就是0011 1101
^二进制疑惑操作副本,如果它被设置在一个操作数就是按位取非(A^B)=49,也就是0011 0001
&^二进制位清空&^(A&^B)=48,也就是110000

位清空:$^

  • 对于a $^ b
  • 对于b上的每个数值
  • 如果为0,则取a对应位上的数值
  • 如果为1,则结果位为0
package main
import "fmt"

func main(){
	/*
	算数运算符: + - * / %  ++ --
	*/
	a := 60
	b := 13
	/*
	a: 60 0011 1100
	b: 13 0000 1101
	&     0000 1100
	|     0011 1101
	^     0011 0001
	&^    0011 0000
	*/
    fmt.Printf("a:%d, %b\n",a,a)
    fmt.Printf("b:%d, %b\n",b,b)
    
    res1 := a & b
    fmt.Printf("res1:%d, %b\n",res1,res1) //12    
	
	res2 := a | b
    fmt.Printf("res2:%d, %b\n",res2,res2) //61

	res3 := a ^ b
    fmt.Printf("res3:%d, %b\n",res3,res3) //49     

	res4 := a &^ b
    fmt.Printf("res4:%d, %b\n",res4,res4) //48   
}

控制台输出:

$ go run xxx.go

a:60, 111100
b:13, 1101
res1:12, 1100
res2:61, 111101
res3:49, 110001
res4:48, 110000

1.4.2 位移运算符

<<:按位左移,将a转为二进制,向左移动b位,等价于乘2的b次方 
>>:按位右移,将a转为二进制,向右移动b位,等价于除2的b次方 

用例:

c := 8
res5 := c << 2
fmt.Printf("res5:%d, %b\n",res5,res5) //32  


res6 := c >> 2
fmt.Printf("res6:%d, %b\n",res6,res6) //2  

控制台输出:

res5:32, 100000
res6:2, 10

1.5 赋值运算符

运算符描述示例
=赋值操作符C = A + B,分配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<<=2,相当于C=C<<2
>>=右移并赋值C>>=2,相当于C=C>>2
&=按位与并赋值C&=2,相当于C=C&2
|=按位或并赋值C|=2,相当于C=C|2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值