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
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章