初面网初面网

运算符

算数运算符

加减乘除。

注意:

1、两数相除,如果运算的数都是整数,那么结果会舍弃小数位,仅保留整数位

2、取余,余数 = 被除数 - (被除数/除数) * 除数

3、自增(++)、自减(--)在Go语言中是单独的语句,而非运算符。也就是说不能赋值给左值。另外,没有前置的自增、自减,都是放在后面的。

var a = 10
var b = 5

// 加
fmt.Println(a + b)
// 减
fmt.Println(a - b)
// 乘
fmt.Println(a * b)
// 除
fmt.Println(a / b)
// 模
fmt.Println(a % b)

关系运算符

var a = 10
var b = 5
var c = 5

fmt.Println(a == b)
fmt.Println(b == c)
fmt.Println(a != b)
fmt.Println(a > b)
fmt.Println(a >= b)
fmt.Println(a < b)
fmt.Println(a <= b)

逻辑运算符

var a = false
var b = true

fmt.Println(a && b)
fmt.Println(a || b)
fmt.Println(!b)

赋值运算符

var a = 21
var c int

// 以下摘抄自菜鸟学院runoob.com
c =  a
fmt.Printf("第 1 行 - =  运算符实例,c 值为 = %d\n", c )

c +=  a
fmt.Printf("第 2 行 - += 运算符实例,c 值为 = %d\n", c )

c -=  a
fmt.Printf("第 3 行 - -= 运算符实例,c 值为 = %d\n", c )

c *=  a
fmt.Printf("第 4 行 - *= 运算符实例,c 值为 = %d\n", c )

c /=  a
fmt.Printf("第 5 行 - /= 运算符实例,c 值为 = %d\n", c )

c  = 200;

c <<=  2
fmt.Printf("第 6行  - <<= 运算符实例,c 值为 = %d\n", c )

c >>=  2
fmt.Printf("第 7 行 - >>= 运算符实例,c 值为 = %d\n", c )

c &=  2
fmt.Printf("第 8 行 - &= 运算符实例,c 值为 = %d\n", c )

c ^=  2
fmt.Printf("第 9 行 - ^= 运算符实例,c 值为 = %d\n", c )

c |=  2
fmt.Printf("第 10 行 - |= 运算符实例,c 值为 = %d\n", c )

位运算符

位运算,操作的是内在的二进制。

运算符描述
&按位与, 即都为1才为1
|按位或,有1则1
^按位异或,相异则1
<<左移,即乘以2的n次方。移几位,n就是几
>>右移,即除以2的n次方。移几位,n就是几

左乘右除

位运算,例如:

数字1, 内存中的存储可能是 0001

数字7,内存中的存储可能是 0111

那么

&0001
|0111
^0110
<<数字1左移2位。0100
>>数字7右移2位。0001
var a int = 1
var b int = 7

fmt.Println("a & b")
fmt.Println("a | b")
fmt.Println("a ^ b")
fmt.Println("a << 2")
fmt.Println("b >> 2")

更新于 2026/8/13