【GoLang】與或非 異或操作


在Go規范,^這個運算符在一元運算符和二元運算符中都出現了。那么他們分別是啥?
在規范中說道:^ bitwise XOR integers
這是按位異或。

 

Go語言位操作實例

<!-- lang: cpp --> package main import ( "fmt" ) // 獲取0-n之間的所有偶數 func even(a int) (array []int) { for i := 0; i < a; i++ { if i&1 == 0 { // 位操作符&與C語言中使用方式一樣 array = append(array, i) } } return array } // 互換兩個變量的值 // 不需要使用第三個變量做中間變量 func swap(a, b int) (int, int) { a ^= b // 異或等於運算 b ^= a a ^= b return a, b } // 左移、右移運算 func shifting(a int) int { a = a << 1 a = a >> 1 return a } // 變換符號 func nagation(a int) int { // 注意: C語言中是 ~a+1這種方式 return ^a + 1 // Go語言取反方式和C語言不同,Go語言不支持~符號。 } func main() { fmt.Printf("even: %v\n", even(100)) a, b := swap(100, 200) fmt.Printf("swap: %d\t%d\n", a, b) fmt.Printf("shifting: %d\n", shifting(100)) fmt.Printf("nagation: %d\n", nagation(100)) }


參考資料:
https://my.oschina.net/viney/blog/147311
http://bbs.studygolang.com/forum.php?mod=viewthread&tid=52&extra=


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM