主要内容
在今天的大师码课程中,我们介绍一下“进制”。
1. 二进制
我们生活中,常用阿拉伯数组,就是十进制。数学中其实还有其他几种进制,我们先来看一下,
“二进制”。

从上面的动图可以看出来,其实
“二进制”,就是
“满二进一”。
或许大家都听说过,
“二进制”和计算机是关系非常紧密的。
现在大家已经学习过来 C++ 的一些知识,那么,在下一个章节中,我们将给大家介绍,它们之间的联系。
不过这会儿,我们还有一个很重要的知识要学习,那就是
“进制转换”。
由于进制很多,不可能一一去讲。我们只需掌握重要的几种就可以了。
3. 二进制和十进制转换
我们先来看一下,十进制数中,我们有这样的约定:
千 百 十 个
1 2 3 4
这是我们学习过的
“数位”。
那么,给定一个数(比如 1234),如何计算它的值呢?
从个位开始:
个: 4 = 4
十: 3 * 10 = 30
百: 2 * 100 = 200
千: 1 * 1000 = 1000
所以,总和为:1000 + 200 + 30 * 4 = 1234
其实这个方法,可以将任意的进制,转化成“十进制”。在上一讲中,我们其实已经使用过这个方法了。
现在我们来看一下,二进制该怎么转化。
3.1 二进制 to 十进制
假设有一个二进制数,如何转化成十进制数呢?我们先来看几个例子:
0000 // 0 (可以先数一数,来得到对应的十进制数)
0001 // 1
0010 // 2
0100 // 4
1000 // 8
然后我们可以这样约定,在二进制数中:
八 四 二 个
1 0 1 0
然后,给定一个数(比如 1010),如何计算它的十进制值呢?
从个位开始:
个: 0 = 0
二: 1 * 2 = 2
四: 0 * 4 = 0
八: 1 * 8 = 8
所以,总和为:8 + 0 + 2 + 0 = 10
请计算下面几个二进制数的十进制值是多少。
注意,请写出计算过程。
1111
111
11
1011 0101 // 二进制数的写法上,我们习惯上,书写时,4 位一组
0110 0010
答案:
15
7
3
181
98
以下这几个,希望大家能够记住。
0000 // 0
0001 // 1
0010 // 2
0100 // 4
1000 // 8
3.2 十进制 to 二进制
需要使用
“倒除法”,被除数是 2 。
假设有一个十进制数:125
__62___
2)125 // 商 62 ,余数 1
12
---------
5
4
---------
1
取上一步计算得到的“商”,继续做除法。
_31__
2)62 // 商 31 ,余数 0
6
---------
2
2
---------
0
取上一步计算得到的“商”,继续做除法。
_15__
2)31 // 商 15 ,余数 1
2
---------
11
10
---------
1
取上一步计算得到的“商”,继续做除法。
__7__
2)15 // 商 7 ,余数 1
14
---------
1
取上一步计算得到的“商”,继续做除法。
_3__
2)7 // 商 3 ,余数 1
6
---------
1
取上一步计算得到的“商”,继续做除法。
_1__
2)3 // 商 1 ,余数 1
2
---------
1
不能再除。
先写最后一步的
“商”。
然后,
倒着将所有
余数写出来。(先写最底下的余数)
1111 1101
这个方法,请多加练习。
习题
课后练习