- Go 教程
- Go - 首頁
- Go - 概述
- Go - 環境搭建
- Go - 程式結構
- Go - 基本語法
- Go - 資料型別
- Go - 變數
- Go - 常量
- Go - 運算子
- Go - 決策語句
- Go - 迴圈
- Go - 函式
- Go - 作用域規則
- Go - 字串
- Go - 陣列
- Go - 指標
- Go - 結構體
- Go - 切片
- Go - 範圍
- Go - 對映
- Go - 遞迴
- Go - 型別轉換
- Go - 介面
- Go - 錯誤處理
- Go 有用資源
- Go - 問題與解答
- Go - 快速指南
- Go - 有用資源
- Go - 討論
Go - 位運算子
Go 語言支援的位運算子列在下表中。假設變數 A 的值為 60,變數 B 的值為 13,則 -
| 運算子 | 描述 | 示例 |
|---|---|---|
| & | 按位與運算子:如果該位在兩個運算元中都存在,則將其複製到結果中。 | (A & B) 將得到 12,即 0000 1100 |
| | | 按位或運算子:如果該位在任一運算元中存在,則將其複製。 | (A | B) 將得到 61,即 0011 1101 |
| ^ | 按位異或運算子:如果該位在一個運算元中設定,但在另一個運算元中未設定,則將其複製。 | (A ^ B) 將得到 49,即 0011 0001 |
| << | 左移運算子:左運算元的值向左移動由右運算元指定的位數。 | A << 2 將得到 240,即 1111 0000 |
| >> | 右移運算子:左運算元的值向右移動由右運算元指定的位數。 | A >> 2 將得到 15,即 0000 1111 |
示例
嘗試以下示例以瞭解 Go 程式語言中所有可用的位運算子 -
package main
import "fmt"
func main() {
var a uint = 60 /* 60 = 0011 1100 */
var b uint = 13 /* 13 = 0000 1101 */
var c uint = 0
c = a & b /* 12 = 0000 1100 */
fmt.Printf("Line 1 - Value of c is %d\n", c )
c = a | b /* 61 = 0011 1101 */
fmt.Printf("Line 2 - Value of c is %d\n", c )
c = a ^ b /* 49 = 0011 0001 */
fmt.Printf("Line 3 - Value of c is %d\n", c )
c = a << 2 /* 240 = 1111 0000 */
fmt.Printf("Line 4 - Value of c is %d\n", c )
c = a >> 2 /* 15 = 0000 1111 */
fmt.Printf("Line 5 - Value of c is %d\n", c )
}
編譯並執行上述程式後,將產生以下結果 -
Line 1 - Value of c is 12 Line 2 - Value of c is 61 Line 3 - Value of c is 49 Line 4 - Value of c is 240 Line 5 - Value of c is 15
go_operators.htm
廣告