Golang - 运算符


算数运算符

package main

import "fmt"

func main() {
	a := 19
	b := 3

	// 加减乘除
	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, b, a%b) // 取余

	// 自增
	a++
	fmt.Println(a)

	// 自减
	b--
	fmt.Println(b)
}


关系运算符

package main

import "fmt"

func main() {
	a := 19
	b := 3

	// 等于和不等于
	if a == b {
		fmt.Println("a = b")
	} else if a != b {
		fmt.Println("a != b")
	}

	// 大于/小于/等于
	if a > b {
		fmt.Println("a > b")
	} else if a <= b {
		fmt.Println("a <= b")
	}
}


逻辑运算符

package main

import "fmt"

func main() {
	
	// bool的逻辑运算
	m := true
	n := false
	
	fmt.Println(m && n) // 与运算, 都为真, 才为真
	fmt.Println(m || n) // 或运算, 有真, 就为真
	fmt.Println(!m)     // 非运算, 取反
	
	// 数字的逻辑运算, 通过二进制来计算结果
	x := 10 // 1010
	y := 7  // 0111

	fmt.Printf("%b, %b\n", x, y)
	fmt.Println(x & y) // 对位都为1, 才为1, 所以结果为: 0010

	fmt.Println(x | y) // 对位有1, 就为1, 所以结果为: 1111

	fmt.Println(x ^ y) // 对位不同, 则为1, 所以结果为: 1101
}


位运算符

package main

import "fmt"

func main() {
	// 对整数在内存中的二进制位进行操作

	p1 := 3
	p2 := p1 << 10 // 先将p1转成二进制的11, 再左移10位
	fmt.Printf("%[1]d, %[1]b, %[2]b, %[2]d\n", p1, p2) // 3, 11, 110000000000, 3072

	p3 := p1 >> 1 // 右移如果超过边界, 则忽略不计
	fmt.Printf("%[1]d, %[1]b, %[2]b, %[2]d\n", p1, p3) // 3, 11, 1, 1
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值