跳至正文
View Categories

2 min read

主要内容 #

在今天的大师码课程中,我们来进行一场篮球比赛!

哈哈,当然不是真的进行一场篮球赛啦!

不过,我们在篮球场上,发现了一个和我们编程非常相关的东西!那就是 — 记分牌!

那么,究竟有什么联系呢?

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. 小游戏 #

请使用你的双手,来模拟五进制的计数过程?
请同学们两两搭档,一个比划,另一个来猜。

习题 #

课后练习