- 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
广告