Go 位運算

// xuhh_go_位運算符 project main.go

/*
    位移操作 << : 向左移位     可以看做是 乘以2的幾次方
    位移操作 >> : 向右移位        可以看做是 除以2的幾次方
    and操作 &  : 都爲1 纔是1
    or 操作 |  : 只要有一個是1 那麼就是1
    取反 ^  :有一個爲1   就是1  兩個1 或者兩個0  全是 0
    標誌位操作 &^ :  a &^ b  =  (a^b) & b   其實就是清除標記位
        (將a中爲1的位  如果b中相同位置也爲1,則將a中該位置修改爲0,a中其他位不變)

*/
package main

import (
	. "fmt"
)

func main() {
	var p = Person{"xuhh", "12"}
	Println(p)

	const a = 2   //0010
	const b = 6   //0110
	const c = 11  //1011
	var d = a ^ c //1001 9
	Println(d)

	d = b &^ c // 0110  1011
	Println(d) // 0100

	var a1 = 0
	a1 |= 1 << 2 //0100
	Print(a1, " ")
	a1 |= 1 << 3 // 1100  12  a1 + a1 * 2*2*2
	Print(a1, " ")
	a1 |= 1 << 4 //0001 1100 28
	Print(a1, " ")

	a1 = a1 &^ (1 << 2)
	Println(a1) // 0001 1000 24

}


發佈了28 篇原創文章 · 獲贊 16 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章