键盘输入
基本介绍
在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取
调用 fmt 包的 fmt.Scanln() 或者 fmtScanf()
使用案例
从控制台接收用户信息,[姓名,年龄,薪水,是否通过考试 ]
进制
对于整数,有四种表示方式:
- 二进制: 0,1 ,满2 进 1。在 golang 中,不能直接使用二进制来表示一个整数,它沿用了 c 的特点。
- 十进制: 0-9 ,满 10 进 1
- 八进制: 0-7 ,满8 进 1.以数字0 开头表示
- 十六进制: 0-9 及 A-F,满 16 进1.以0x 或 0X 开头表示。此处的 A-F 不区分大小写。
部分进制图示
二进制转十进制
规则:从最低位开始(右边的),将每个位上的数提取出来,乘以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位的二进制数即可
源码、反码、补码
基本介绍
对于有符号的而言:
- 二进制的最高位是符号位:0表示正数,1表示负数
- 1 ===》 [0000 0001]
- -1===>[1000 0001]
- 正数的原码,反码,补码都一样
- 负数的反码=它的原码符号位不变,其它位取反(0->1,1->0),负数的补码=它的反码+1
- 1原码[0000 0001] 反码[0000 0001] 补码[0000 0001]
- -1===>原码[1000 0001] 反码[1111 1110] 补码[1111 1111]
- 0的反码,补码都是0
- 在计算机运算的时候,都是以补码的方式来运算的
位运算
基本介绍
Golang 中有 3 个位运算: 分别是”按位与&、按位或|、按位异或^,它们的运算规则是:
- 按位与&: 两位全为1,结果为 1,否则为 0
- 按位或| : 两位有一个为 1,结果为 1,否则为 0
- 按位异或^ : 两位一个为 0,一个为 1,结果为 1,否则为 0
Golang 中有 2 个移位运算符: >>、<< 右移和左移.运算规则
- 右移运算符低位溢出,符号位不变,并用符号位补溢出的高位。右移 N 位,就是除以 2 的 N 次方
- 左移运算符符号位不变,低位补0。左移N位,就是乘以 2 的 N 次方。