web-technical-blog

web開発に関する技術メモ

ビット演算についてメモしとく(ほとんど使用しないが...)

package main

import (
	"fmt"
)

func main() {
    // 左シフト演算(1を左に3ビットシフト)
    fmt.Println("1 << 3=", 1 << 3)    // 1 << 3= 8
    // 右シフト演算(2進数で(10)を右に1ビットシフト)
    fmt.Println("2 >> 1=", 2 >> 1)    // 2 >> 1= 1
    // ビットクリア(and not)
    fmt.Println("3 &^ 6=", 3 &^ 6)    // 3 &^ 6= 1
    /* and notの考え方
     3 and (not 6)
     3(0011) 
     6(0110) notなので(1001)
     0011
     1001
     ----
     0001
    */
}