主要内容 #
在今天的大师码课程中,我们来进行一场篮球比赛!
哈哈,当然不是真的进行一场篮球赛啦!
不过,我们在篮球场上,发现了一个和我们编程非常相关的东西!那就是 — 记分牌!
那么,究竟有什么联系呢?
1. 记分牌 #
大家可以回顾一下,记分牌的记分过程,是什么样子的呢?
我们的记分牌,可以记录超过 9 的数字吗?
如果,只有一位数字区域,那是不可以的。
由于,一个数字区域,只可以放一个数字(0-9),所以这时候,就需要两位数字区域了。
其实大家一看就知道了,这其实就是我们生活中常用的数字啊!
这有什么稀奇的呢?
其实,我们生活中,这种“满十进一”的计数方式,我们称之为“十进制”。
2. 十进制 #
这种“满十进一”的机制我们都已经习以为常,所以都不觉得,这有什么神奇。
大家知道吗,其实人类历史上,还出现过不是“满十进一”的计数方式呢。
- 12 进制的计数法:中国古代的地支(代表一天的时间,12个时辰)“子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥”;
- 12 进制的计数法:中国的十二生肖“鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪”;
请思考:
有一个属虎的小学生,请问他今年应该是几岁?
答案:
既然是小学生,首先确定他的年龄范围,应该是十几岁。 然后今年是牛年,所以属牛的人,今年的岁数应该是“0,12,24,36,48,60,72,84,...” 这个小学生属虎,比属牛的人小一岁。所以,他的年龄应该是 12 - 1 = 11 岁。
- 60 进制的计数法:时:分:秒;
请思考:
12:20:15 是多少秒?
答案:
12 时 = 12 * 60 * 60 = 43200 秒; 20 分 = 20 * 60 = 1200 秒; 15 秒 = 15 秒; 一共:43200 + 1200 + 15 = 44415 秒;
3. 不同的进位制 #
下面,我们用不同的进位制,一起来数数。
3.1 五进位制 #
0 1 2 3 4 10 11 12 13 14 20 21
3.2 八进位制 #
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21
3.3 十二进位制 #
阿拉伯数字只有 0-9,所以呢,“十二进制”我们就是用“十二生肖”来代表数字,一起来数一数。
鼠 // 0 牛 // 1 虎 // 2 兔 // 3 龙 // 4 蛇 // 5 马 // 6 羊 // 7 猴 // 8 鸡 // 9 狗 // 10 猪 // 11 牛鼠 牛牛 牛虎 牛兔 牛龙 牛蛇 牛马 牛羊 牛猴 牛鸡 牛狗 牛猪 虎鼠 虎牛 虎虎 虎兔 虎龙 虎蛇 虎马 虎羊 虎猴 虎鸡 虎狗 虎猪
请思考:
鼠 // 0 牛 // 1 虎 // 2 兔 // 3 龙 // 4 蛇 // 5 马 // 6 羊 // 7 猴 // 8 鸡 // 9 狗 // 10 猪 // 11 “龙虎” 对应的十进制数字应该是多少呢? “猪猪” 对应的十进制数字应该是多少呢? “猪牛羊” 对应的十进制数字应该是多少呢?
答案:
鼠 // 0 牛 // 1 虎 // 2 兔 // 3 龙 // 4 蛇 // 5 马 // 6 羊 // 7 猴 // 8 鸡 // 9 狗 // 10 猪 // 11 “龙虎” 对应的十进制数字应该是多少呢? 答:从最低位开始分析, “虎” = 2; “龙” = 4*12 = 48; 一共为 48 + 2 = 50; (请参考 “时:分:秒”的换算过程) “猪猪” 对应的十进制数字应该是多少呢? 答:从最低位开始分析, “猪” = 11; “猪” = 11*12 = 142; 一共为 142 + 11 = 153; (请参考 “时:分:秒”的换算过程) “猪牛羊” 对应的十进制数字应该是多少呢? 答:从最低位开始分析, “羊” = 7; “牛” = 1*12 = 12; “猪” = 11*12*12 = 1704; 一共为 1704 + 12 + 7= 1723; (请参考 “时:分:秒”的换算过程)
3.4 十六进位制 #
一样的道理,阿拉伯数字只有 0-9,不够用来表示 16 个数字。
但是,对于“十六进制”,在我们编程中是非常重要的一种计数方式,所以专门约定,使用 ABCDEF 来补充。
我们一起来数一数吧。
0 1 2 3 4 5 6 7 8 9 A // 10 B // 11 C // 12 D // 13 E // 14 F // 15 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32
请思考:
0 1 2 3 4 5 6 7 8 9 A // 10 B // 11 C // 12 D // 13 E // 14 F // 15 “A5” 对应的十进制数字应该是多少呢? “3D” 对应的十进制数字应该是多少呢? “FF00” 对应的十进制数字应该是多少呢?
答案:
0 1 2 3 4 5 6 7 8 9 A // 10 B // 11 C // 12 D // 13 E // 14 F // 15 “A5” 对应的十进制数字应该是多少呢? 答:从最低位开始分析, “5” = 5; “A” = 10 * 16 = 160; 一共为 160 + 5= 165; (请参考 “时:分:秒”的换算过程) “3D” 对应的十进制数字应该是多少呢? 答:从最低位开始分析, “D” = 13; “3” = 3 * 16 = 48; 一共为 48 + 13 = 61; (请参考 “时:分:秒”的换算过程) “FF00” 对应的十进制数字应该是多少呢? 答:从最低位开始分析, “0” = 0; “0” = 0 * 16 = 0; “F” = 15 * 16 * 16 = 3840; “F” = 15 * 16 * 16 * 16 = 61440; 一共为 1704 + 12 + 7= 1723; (请参考 “时:分:秒”的换算过程)
4. 小游戏 #
请使用你的双手,来模拟五进制的计数过程?
请同学们两两搭档,一个比划,另一个来猜。