数値型と演算子 / シフト演算子【夏休みにGo vol.5】
こんにちは、しーたです。
今日はデータ型の種類と演算子について学びます。といっても他の言語とほとんど同じなので例と結果だけで、説明は省きます。
①数値型と演算子
uint, int, float, complexなど色んなデータ型があります。
演算子もおなじみの+,-,*,/,%、インクリメントも他の言語と同じですね。
詳しくはドキュメントの数値型の仕様を見ましょう。→ https://golang.org/ref/spec#Numeric_types
"fmt.Printf"は、%Tでデータ型、%vで値が見れます。
package main
import "fmt"
func main() {
var (
u8 uint8 = 255
i8 int8 = 127
f32 float32 = 0.2
c64 complex64 = -5 + 12i
)
fmt.Println(u8, i8, f32, c64)
fmt.Printf("type=%T, value=%v", u8, u8)
fmt.Println("5+2 = ", 5+2)
fmt.Println("5-2 = ", 5-2)
fmt.Println("5*2 = ", 5*2)
fmt.Println("5/2 = ", 5/2)
fmt.Println("5%2 = ", 5%2)
x := 1
fmt.Println("x = ", x)
x += 2
fmt.Println("x = ", x)
x++
fmt.Println("x = ", x)
}
複素数が簡単に使えるのは嬉しいですね。Cでは使えないのに...と思っていたら使えるようになってるみたいですね。知りませんでした。
②シフト演算子 "<<"
シフト演算子はビット演算子の一つです。私は初めて見たので少し書きます。"<<1"と書くことで、「ビットを左に1つずらす」ことができます。
例えば1という数字は4bitで表すと"0001"です。これが"0010"(=2)になります。(ずらして空いた場所(右端のbit)には0が格納されます)
同様に"1<<2"なら"0001"→"0100"(=4)に、"3<<2"なら"0011"→"1100"(=12)になります。
func main() {
fmt.Println(1 << 0) //0001 = 1
fmt.Println(1 << 1) //0010 = 2
fmt.Println(1 << 2) //0100 = 4
fmt.Println(1 << 3) //1000 = 8
}
それでは!