键盘输入语句
介绍:在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。
步骤:
1.导入fmt包
2.调用fmt包的fmt.Scanln()或者fmt.Scanf()
demo:从控制台接收用户信息,【姓名,年龄,薪水,是否为男】
package main
import (
"fmt"
)
func main() {
//键盘输入的使用
//使用Scanln()
//先声明变量
var name string
var age int
var salary float32
var isman bool
// fmt.Println("请输入姓名")
// fmt.Scanln(&name)
// fmt.Println("请输入年龄")
// fmt.Scanln(&age)
// fmt.Println("请输入薪水")
// fmt.Scanln(&salary)
// fmt.Println("请输入是否为男")
// fmt.Scanln(&isman)
// fmt.Printf("姓名:%v 年龄:%v 薪水:%v 是否为男:%v\n", name, age, salary, isman)
//使用Scanf(),可以按照指定格式输入
fmt.Println("请输入你的姓名、年龄、薪水、是否为男,使用空格隔开")
fmt.Scanf("%s %d %f %t", &name, &age, &salary, &isman)
fmt.Printf("姓名:%v 年龄:%v 薪水:%v 是否为男:%v\n", name, age, salary, isman)
}
位运算
- 位运算的思考题:
func main(){
var a int = 1 >> 2
var b int = -1 >> 2
var e int = -2 >> 2
var c int = 1 << 2
var d int = -1 << 2
//a,b,c,d的结果是多少
fmt.Println("a=",a) //0
fmt.Println("b=",b) //-1
fmt.Println("e=",e) //-1
fmt.Println("c=",c) //4
fmt.Println("d=",d) //-4
}
- 在golang中下面的表达式运算的结果是:
func main(){
fmt.Println(2 & 3) //2
fmt.Println(2 | 3) //3
fmt.Println(2 ^ 3) //1
fmt.Println(-2 ^ 2) //-4
}
原码、反码、补码
对于有符号的而言:
- 二进制的最高位为符号位:0表示正数,1表示负数
- 正数的原码,反码,补码都一样
- 复数的反码=它的原码符号位不变,其他位取反(0->1,1->0)
- 负数的补码=它的反码+1
- 0的反码和补码都是0
- 在计算机运算的时候,都是以补码的方式来运算的,因为计算机只能相加。
位运算符
golang中有3个位运算
分别是:按位与&、按位或|、按位异或^,它们的运算规则是:
按位与& :两位全为1,结果为1,否则为0
按位或|:两位有一个为1,结果为1,否则为0
按位异或^ :两位一个为0,一个为1,结果为1,否则为0
移位运算符
golang中有2个移位运算符:
右移运算符>>、和左移运算符<<,运算规则:
右移运算符>>:低位溢出,符号位不变,并用符号位补溢出的高位
左移运算符<<:符号位不变,低位补0
案例演示:
a := 1 >> 2 //0000 0001 => 0000 0000 = 0
c := 1 << 2 // 0000 0001 => 0000 0100 = 4