算术运算符
package main
import "fmt"
func main() {
/*
算数运算符:+ - * / % ++ --
*/
a := 10
b := 3
sum := a+b
fmt.Printf("%d + %d = %d\n", a, b, sum)
sub := a-b
fmt.Printf("%d - %d = %d\n", a, b, sub)
mul := a*b
fmt.Printf("%d * %d = %d\n", a, b, mul)
div := a/b
fmt.Printf("%d / %d = %d\n", a, b, div)
mod := a%b
fmt.Printf("%d %% %d = %d\n", a, b, mod)
c := 3
c++
fmt.Println(c)
c--
fmt.Println(c)
//++c --c 不支持
//不支持用c++,c--运算
//针对整数
}
关系运算符
package main
import "fmt"
func main() {
/*
关系运算符:
> < >= <= == !=
*/
a := 3
b := 5
c := 3
res1 := a>b
res2 := b>c
fmt.Printf("%T,%t\n", res1, res1)
fmt.Printf("%T,%t\n", res2, res2)
res3 := a==b
fmt.Println(res3)
res4 := a==c
fmt.Println(res4)
fmt.Println(a!=b, a!=c)
}
逻辑运算符
package main
import "fmt"
//11
func main() {
/*
逻辑运算符:操作数必须是bool,运算结果也是bool
逻辑与:&&
运算规则:所有操作数都为真,结果才为真
与 & 短路与 &&
逻辑或:||
运算规则:全假才假
或:| 短路或 ||
逻辑非:!
取反
*/
f1 := true
f2 := false
f3 := true
res1 := f1&&f2
fmt.Printf("res1:%t\n", res1)
res2 := f1 && f2 && f3
fmt.Printf("res2:%t\n", res2)
}
位运算符
package main
import "fmt"
//12
func main() {
/*
位运算符:
将数值,转为二进制后,按位操作
按位&:
全 1 为 1
按位|:
全 0 为 0
异或^:
二元:a^b
相同为 0,不同为 1
一元:^a
按位取反
位清空:&^
对于 a &^ b
对于 b 上的数值
如果为 0,则取 a 对应位上的数值
如果为 1,则结果位就取 0
位移运算符:
<<:按位左移,将a转为二进制,向左移b位
a << b
>>:按位右移,将a转为二进制,向右移b位
a >> b
*/
a := 60
b := 13
fmt.Printf("a:%d,%b\n", a, a) // 111100
fmt.Printf("a:%d,%b\n", b, b) // 001101
res1 := a & b
fmt.Println(res1) //12
res2 := a | b
fmt.Println(res2) //60
res3 := a ^ b
fmt.Println(res3) //49
res4 := a &^ b
fmt.Println(res4) //48
res5 := ^a
fmt.Printf("res5:%d,%b\n", res5, res5)
c := 8
res6 := c << 2
fmt.Println(res6)
res7 := c >> 2
fmt.Println(res7)
}
赋值运算符
键盘打印和输出
package main
import (
"bufio"
"fmt"
"os"
)
//13
func main() {
/*
输入和输出
fmt包:输入、输出
格式化打印占位符
%v:原样输出
%T:打印类型
%t:bool类型
%s:字符串
%f:浮点
%d:10进制的整数
%o:8进制
%x,%X:16进制
%x:0-9,a-f
%X:0-9,A-F
%c:打印字符
%p:打印地址
*/
/*
Scanln()
可以读一个或多个数据
*/
/*
var x int
var y float64
fmt.Println("请输入一个整数、一个浮点数:")
fmt.Scanln(&x,&y) //读取键盘的输入,通过操作地址,赋值给x和y 阻塞式
fmt.Printf("x的数值:%d,y的数值:%f\n", x, y) //123 123.456
fmt.Scanf("%d,%f", &x, &y)
fmt.Printf("x的数值:%d,y的数值:%f\n", x, y) //200,2.345
*/
fmt.Println("请输入一个字符串")
reader := bufio.NewReader(os.Stdin)
s1,_ := reader.ReadString('\n') //_表示舍弃数据(error)
fmt.Println("读到的数据:",s1)
}
网友评论