侧边栏壁纸
博主头像
梦幻世界博主等级

行动起来,活在当下

  • 累计撰写 23 篇文章
  • 累计创建 2 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

DAY06:键盘输入;二进制、十进制;原码、反码、补码;位运算

梦幻世界
2024-05-24 / 0 评论 / 0 点赞 / 44 阅读 / 5998 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-05-24,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

键盘输入

基本介绍

在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取

调用 fmt 包的 fmt.Scanln() 或者 fmtScanf()

使用案例

从控制台接收用户信息,[姓名,年龄,薪水,是否通过考试 ]

package main

import "fmt"

func main() {
	var (
		name   string
		age    int
		sal    float64
		ispass bool
	)
	fmt.Println("请输入姓名")
	fmt.Scanln(&name)
	fmt.Println("请输入年龄")
	fmt.Scanln(&age)
	fmt.Println("请输入薪水")
	fmt.Scanln(&sal)
	fmt.Println("请输入是否帮他毕业")
	fmt.Scanln(&ispass)

	fmt.Printf("姓名=%v; 年龄=%v; 薪水=%v; 是否让他毕业=%v", name, age, sal, ispass)
}

进制

对于整数,有四种表示方式:

  1. 二进制: 0,1 ,满2 进 1。在 golang 中,不能直接使用二进制来表示一个整数,它沿用了 c 的特点。

  2. 十进制: 0-9 ,满 10 进 1

  3. 八进制: 0-7 ,满8 进 1.以数字0 开头表示

  4. 十六进制: 0-9 及 A-F,满 16 进1.以0x 或 0X 开头表示。此处的 A-F 不区分大小写。

部分进制图示

0-8

9-17

二进制转十进制

规则:从最低位开始(右边的),将每个位上的数提取出来,乘以2的(位数-1)次方然后求和。

案例: 请将二进制:1011转成十进制的数

1011=1*1+1*2+0* 2* 2+1* 2*2*2 =1+2+ 0+ 8=11

八进制转十进制

规则:从最低位开始(右边的),将每个位上的数提取出来,乘以8的(位数-1)次方然后求和。

案例:请将0123转成十进制的数

0123=3*1+2*8+1*8*8=3+16+64=83

十六进制转十进制

规则:从最低位开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和。案例:请将0x34A转成十进制的数0x34A=10*1+4*16+3*16*16=10+64+768=842

十进制转二进制

规则:将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。

十进制转八进制

规则:将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制。

十进制转十六进制

规则:将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制。

二进制转八进制

规则:将二进制数每三位一组(从低位开始组合),转成对应的八进制数即可

二进制转十六进制

规则:将二进制数每四位一组(从低位开始组合),转成对应的十六进制数即可

八进制转二进制

规则:将八进制数每1位,转成对应的一个3位的二进制数即可。

十六进制转二进制

规则:将十六进制数每1位,转成对应的一个4位的二进制数即可

源码、反码、补码

基本介绍

对于有符号的而言:

  1. 二进制的最高位是符号位:0表示正数,1表示负数

  2. 1 ===》 [0000 0001]

  3. -1===>[1000 0001]

  4. 正数的原码,反码,补码都一样

  5. 负数的反码=它的原码符号位不变,其它位取反(0->1,1->0),负数的补码=它的反码+1

  6. 1原码[0000 0001] 反码[0000 0001] 补码[0000 0001]

  7. -1===>原码[1000 0001] 反码[1111 1110] 补码[1111 1111]

  8. 0的反码,补码都是0

  9. 在计算机运算的时候,都是以补码的方式来运算的

位运算

基本介绍

Golang 中有 3 个位运算: 分别是”按位与&、按位或|、按位异或^,它们的运算规则是:

  1. 按位与&: 两位全为1,结果为 1,否则为 0

  2. 按位或| : 两位有一个为 1,结果为 1,否则为 0

  3. 按位异或^ : 两位一个为 0,一个为 1,结果为 1,否则为 0

Golang 中有 2 个移位运算符: >>、<< 右移和左移.运算规则

  1. 右移运算符低位溢出,符号位不变,并用符号位补溢出的高位。右移 N 位,就是除以 2 的 N 次方

  2. 左移运算符符号位不变,低位补0。左移N位,就是乘以 2 的 N 次方。

使用案例

package main

import "fmt"

func main() {
	fmt.Println(2 & 3)
	fmt.Println(2 | 3)
	fmt.Println(2 ^ 3)
	fmt.Println(-2 ^ 2)

	fmt.Println(1 >> 2)
	fmt.Println(1 << 2)
}

0

评论区