开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 9 天,点击查看活动详情
1.输出格式
如果我们打算输出一个变量的具体类型,可以用Printf函数,"%T" + 变量名 打印
Println和Print的区别在于加”ln“表示换行输出。
如果打算把数值对应的变量名也打印可以这么写fmt.Println("num1 = " , num1);这里面的“,”逗号相当于Java里的 “+”号
Printf:和C语言的printf函数一样,一定要指明输出一个什么类型的值。比如%d表示输出的是一个整型标量中的值。
func main() {
num1 := 10
num2 := 20
num1, num2 = num2, num1
fmt.Println(num1, num2)
fmt.Printf("%d\n", num1) // \n表示换行输出
}
2.输入格式
Go提供了两个输入函数,Scanf()和Scan()。
Scanf()使用方法和C语言的scanf()一样,要先指明输入什么类型的值,再把想赋值的变量写进去用逗号隔开,并加上**&符号(&表示要获取这个变量的内存地址,即取地址符号**)
输入数据后敲回车键表示输入结束
func main() {
var age int
fmt.Println("请输入年龄")
fmt.Scanf("%d", &age)
fmt.Println("age = ", age)
}
我们可以用变量标记一块内存地址,并通过"&变量名"的方式打印出地址,比如fmt.Println(&age),要注意地址和变量的值无关,变量的声明只是标记了一块地址,更方便程序员去找到它。如果用Printf函数打印地址记得用"%p"
Scan()的使用比较简单,不需要说明类型,只需要在变量前加一个取地址符就行。比如fmt.Scan(&age)
总结:
Scanf()语法格式:fmt.Scanf("%_", &num)
Scan()语法格式:fmt.Scan(&num)
3.计算机进制
进位的规则一定是:逢N进1
-
进制的定义:按进位的原则进行计数的方法叫做进位计数制
-
特点:使用一组固定的数字表示数值的大小。比如十进制是0~9这十个数,逢十进一。
-
进制要素:基数和位权
- 基数:这里的N叫做基数。就是指各种进制计数制中允许选用基本数码的个数。比如10就是十进制的基数,因为逢十进一
- 位权:215 = 2* 10^2^ + 1*10^1^ + 5 *10^0^ 其中10^2^,10^1^,10^0^ 就是位权
- 按权相加法:让每一位上的数字字符乘以它所代表的权。
-
二进制:只由0和1来表示的数,计算机内部的所有运算操作都是用二进制来表示的
-
十六进制:一般用数字0~9和字母A到F(或a-f)表示
进制转换
二进制转换成十进制,采用按权相加法。比如二进制1011转换成十进制:1011 -> 1 * 2的3次方 + 0 * 2的2次方 + 1 * 2的1次方 + 1 * 2的0次方
十进制转二进制,采用“除2取余,逆排序”法,如下图片所示,115转换成二进制就是1110011