Go言語_演算子

算術演算子

四則演算


package main

import "fmt"

func main() {
	a, b := 10, 5

	// 四則演算
	fmt.Printf("%d\n", a+b) // 15
	fmt.Printf("%d\n", a-b) // 5
	fmt.Printf("%d\n", a*b) // 50
	fmt.Printf("%d\n", a/b) // 2

	// 余り
	a, b = 13, 3
	fmt.Printf("%d\n", a%b) // 1
}

ビット演算


package main

import "fmt"

func main() {
	a, b := 255, 85 // 11111111, 01010101

	// 論理積
	fmt.Printf("%08b\n", a&b) // 01010101

	// 論理和
	fmt.Printf("%08b\n", a|b) // 11111111

	//排他的論理和
	fmt.Printf("%08b\n", a^b) // 10101010

	// 論理積の否定
	fmt.Printf("%08b\n", a&^b) // 10101010

	//算術シフト
	c, d := 15, 240            // 00001111, 11110000
	fmt.Printf("%08b\n", c<<4) // 11110000
	fmt.Printf("%08b\n", d>>4) // 00001111
}

三項演算子

Goには三項演算子は存在しません。


比較演算子

比較演算子はC言語と同様の表記であり、下記6種類が定義されています。


package main

import "fmt"

func main() {
	a, b := 3, 5

	if a == b {
		fmt.Println("等しい")
	} else if a > b {
		fmt.Println("より大きい")
	} else if a >= b {
		fmt.Println("以上")
	} else if a < b {
		fmt.Println("より小さい")
	} else if a <= b {
		fmt.Println("以下")
	} else if a != b {
		fmt.Println("等しくない")
	}
}

論理演算子

論理演算子は、左の項から順番に評価し、演算子の結果として true か false のいずれかに決定した段階で評価をやめて true または false を返します。

「短絡評価」、「ショートサーキット評価」と呼ばれる評価方式です。


// 論理積(AND)
x && y

// 論理和(OR)
x || y

// 否定(NOT)
!x

関連ページ