一、进制是什么?
进制是人为定义的带进位的计数方法(当然还有不带位进的计数方法,感兴趣的可以去私下了解,这里不介绍)。对于任何一种进制—X进制,就表示每一位置上的数运算时都是逢X进一位,x进制就是逢x进位。 例如十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推。然后经过一系列复杂的社会关系等,人们选择了十进制。
二、除K取余法(用于十进制转为其他进制)
除k取余法:除k取余法,主要用于把十进制的数化为k进制的数,将十进制连续除以k,直到商为0,逆序排列余数即可得到。
我们先看一个题目:
将十进制(26)转换为二进制。
所以我们可以采用除二取余法进行计算:
26 ÷ 2 = 13 ... 0
13 ÷ 2 = 6 ... 1
6 ÷ 2 = 3 ... 0
3 ÷ 2 = 1 ... 1
1 ÷ 2 = 0 ... 1
我们将得到的余数(01011)进行逆向排序得到(11010),即:26转换为二进制为:11010
我们再来看一道题目
将十进制(26)转换为八进制
所以我们可以采用除八取余法进行计算:
26 ÷ 8 = 3 ... 2
3 ÷ 8 = 0 ... 3
我们将得到的余数(23)进行逆向排序得到(32),即:26转换为八进制为:32
通过上面的例子我们可以得知十进制转换为其他进制时可以使用除K取余法来进行计算。
三、按权求和(其他进制转换为十进制)
把二进制数(或十六进制数)每位上的数乘以权,求其最后的和,就是其对应的十进制数。其中权为:当前进制n-1次方(n是数字所在的位数)——简称“按权求和”
我们直接来看题目
将二进制(11010)转换为十进制
我们先来看看11010每个位所对应的全分别是多少:
位数 | 1 | 1 | 0 | 1 | 0 |
---|---|---|---|---|---|
n的值 | 5 | 4 | 3 | 2 | 1 |
全数 | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
根据按权求和我们可以得到:
11010
= 1 * 2⁴ + 1 * 2³ + 0 * 2² + 1 * 2¹ + 0 * 2⁰
= 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 0 * 1
= 16 + 8 + 0 + 2 + 0
= 26
即二进制(11010)转换为10进制为26
我们在来看一个题
将八进制(32.1)转换为十进制
我们先来看看32.1每个位所对应的全分别是多少:
位数 | 3 | 2 | . | 1 |
---|---|---|---|---|
n的值 | 2 | 1 | . | 0 |
全数 | 8¹ | 8⁰ | . | 8的-1次 |
- ps:从这个例子中我们可以看出来个位的n是1,小数点后是0依次递减。
根据按权求和我们可以得到:
32
= 3 * 8¹ + 2 * 8⁰ + 1 * 8的-1次
= 3 * 8 + 2 * 1 + 1 * 0.125
= 24 + 2 +0.125
= 26.125
即八进制(32)转换为10进制为26.125
三、其他进制转换法
我们在这里先想一件事,例如二进制转为八进制,二进制转换为十六进制,这两种进制转化,难道我们要先把二进制转换为十进制,在从而转换为十六进制以及八进制吗?
我们先来想一下2,8,16之间的关系,是不是都是2的幂次。
2 | 8 | 16 |
---|---|---|
2¹ | 2³ | 2⁴ |
通俗的来说就是8是2的三倍,16是2的四倍。
那是不是每三位所转换成的十进制就是所对应的八进制数纳?我们来试试看
将二进制(11010)转换为八进制
我们将二进制(11010)按照我们刚才的想法进行测试,从后往前没三位分一组,最后不够三位的用零补齐。即:
二进制 | 011 | 010 |
---|---|---|
十进制 | 3 | 2 |
果然每三位分一组转换后的十进制对应的就是8进制数,我们在来测试一下
将二进制(11110)转换为八进制
二进制 | 011 | 110 |
---|---|---|
十进制 | 3 | 6 |
我们可以计算一下二进制(11110)所对应的八进制是不是为36(这里不在演示,有兴趣计算的可以根据前面的公式先将二进制转换为十进制,再将十进制转换为八进制看看结果是否一致),所以我们得到一个结论(具体原理自行百度,这里不细说):
二进制转为八进制:从后往前每三位分一组,最后不够三位用零补齐,然后每三位转换为十进制,即为所对应的八进制
二进制转为十六进制:从后往前每四位分一组,最后不够四位用零补齐,然后每三位转换为十进制,即为所对应的十六进制
- 相反八进制,十六进制转换为二进制是怎么样?这里我就不演示了直接说明。
八进制转为二进制:每位数当作十进制来看,分别转换为三位二进制数即得到答案。例如八进制(12),其中1对应的三位二进制数为001,2对应的三位二进制数为010,所以八进制(12)所对应的二进制为001010即1010.
十六进制转为二进制:每位数当作十进制来看,分别转换为四位二进制数即得到答案。例如十六进制(45),其中4对应的三位二进制数为0100,5对应的三位二进制数为0101,所以十六进制(45)所对应的二进制为01000101即1000101.
四、十进制快速转换为二进制
我们先来背一下2的次幂分别是:
1 2 4 8 16 32 64 128 256 512 1024
那么他们分别对应那个位置?我们看图片:
根据上面图可以知道每个二进制位数所对应的十进制值,所以我们只需要跟据图上的值进行填写就行了,
例如十进制(56)
那么56可以看成32+16+8 所以对应的二进制数为111000