golang基础学习—输入、位运算与移位运算

键盘输入语句

介绍:在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。
步骤:
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)
}

位运算

  1. 位运算的思考题:
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
}
  1. 在golang中下面的表达式运算的结果是:
func main(){
	fmt.Println(2 & 3) //2
	fmt.Println(2 | 3) //3
	fmt.Println(2 ^ 3) //1
	fmt.Println(-2 ^ 2) //-4
}

计算细节

原码、反码、补码

对于有符号的而言:

  1. 二进制的最高位为符号位:0表示正数,1表示负数
  2. 正数的原码,反码,补码都一样
  3. 复数的反码=它的原码符号位不变,其他位取反(0->1,1->0)
  4. 负数的补码=它的反码+1
  5. 0的反码和补码都是0
  6. 在计算机运算的时候,都是以补码的方式来运算的,因为计算机只能相加。

位运算符

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值