+、-、*、/、%、++、–
Golang 没有++i、–i、i++ >4
==、!=、<、>、<=、>=
关系运算符结果都是bool型
&&、||、!
Golang支持短路
=、+=、-=、*=、/=、%=、«=、»=、&=、^=、|=
&、|、^、«、»
&、*
package main
import "fmt"
func main() {
num := 97
fmt.Printf("%d 个星期零 %d 天", num/7, num%7)
}
package main
import "fmt"
func main() {
temp := 134.2
fmt.Printf("%.2f 对应的摄氏温度为 %.2f", temp, 5.0/9.0*(temp-100.0))
}
package main
import "fmt"
func main() {
a, b := 12, 14
fmt.Printf("a=%d, b=%d\n", a, b)
a = a + b
b = a - b
a = a - b
fmt.Printf("a=%d, b=%d\n", a, b)
a, b = b, a
fmt.Printf("a=%d, b=%d\n", a, b)
}
package main
import (
"fmt"
"math"
)
func main() {
a, b, max := 12, 14, 0
if a > b {
max = a
} else {
max = b
}
fmt.Printf("max=%d", max)
fmt.Printf("max=%.0f", math.Max(float64(a), float64(b)))
}
package main
import (
"fmt"
"math"
)
func main() {
a, b, c, max := 12, 14, 15, 0
if a > b {
max = a
} else {
max = b
}
if c > max {
max = c
}
fmt.Printf("max=%d", max)
fmt.Printf("max=%.0f", math.Max(float64(a), float64(b)))
}
package main
import (
"fmt"
)
func main() {
var name string
var age int
var salary int
var pass bool
fmt.Print("请输入姓名:")
fmt.Scanln(&name)
fmt.Print("请输入年龄 薪水:")
fmt.Scanf("%d %d\n", &age, &salary) // fmt.Scanf后面不加换行,会击穿之后的Scan
fmt.Print("请输入是否通过考试:")
fmt.Scanln(&pass)
fmt.Printf("姓名:%s\n年龄:%d\n薪水:%d\n是否通过考试:%t\n", name, age, salary, pass)
}
package main
import (
"fmt"
)
func main() {
fmt.Println(1 >> 2) // 0
fmt.Println(1 << 2) // 4
fmt.Println(-1 >> 2) // -1 右移分为有符号右移(>>)和无符号右移(>>>)两种,前者补符号位,后者补0
fmt.Println(-1 << 2) // -4
fmt.Println(-3 ^ 3) // -2 位运算使用补码计算,负数的反码符号位不变,其他位取反。补码是反码+1
/*
数值 原码 反码 补码
-3 1000 0011 1111 1100 1111 1101
3 0000 0011 0000 0011 0000 0011
结果 1000 0010 1111 1101 1111 1110
*/
}