一些关于常见的进制教程
二进制
二进制是逢二进一
第一行和第二行相加
1 | 0 | 1 | 1 | |
---|---|---|---|---|
1 | 1 | 1 | 1 | |
1 | 1 | 0 | 1 | 0 |
二进制转为十进制
我们把右边当作低位,左边是高位.
举个例子:
3 | 2 | 1 | 0 | 位数 |
---|---|---|---|---|
1 | 0 | 1 | 0 | 二进制数 |
23 | 0 | 21 | 0 | = 10 |
点拨:
可以看到3210是固定组,往左越来越大,我们从右往左看,二进制数只有0和1,当数字为0时代表没有则为0,如果数字是1,我们就要考虑当前位置对于的位数是多少,例如: 从右往左的第二个数字就是1,而当前位数是1,所以就是2的1次方.最后把所有转换的数字加起来即可.
总结: 位数 = n,遇到1考虑n,2的n次方
上面的例子有个特点就是8,4,2,1这是所有二进制数转十进制通用的
1110 = 14 (8+4+2+0)
1010 = 10 (8+0+2+0)
0001 = 1 (0+0+0+1)
八进制
八进制就是逢8进1
第一行和第二行相加
7 | 0 | 1 | 1 | |
---|---|---|---|---|
1 | 2 | 1 | 5 | |
1 | 0 | 2 | 2 | 6 |
八进制转十进制
3 | 2 | 1 | 0 | 位数 |
---|---|---|---|---|
1 | 0 | 0 | 1 | 八进制数 |
83 | 0 | 0 | 80 | = 513 |
上面是个简单的例子,下面进阶一下
3 | 2 | 1 | 0 | 位数 |
---|---|---|---|---|
3 | 0 | 0 | 5 | 八进制数 |
3*83 | 0 | 0 | 5*80 | = 1541 |
总结: 原数 * 8的n次方(位数=n)
十六进制
十六进制就是逢十六进一
f | 9 | 9 | 1 | |
---|---|---|---|---|
1 | 2 | 9 | c | |
1 | 0 | c | 2 | d |
因为我们要把数字转为十六进制,所以大于等于10的数字我们用字母代替
A为10,B为11以此类推
十六进制转十进制
3 | 2 | 1 | 0 | 位数 |
---|---|---|---|---|
1 | 0 | 0 | 1 | 十六进制数 |
163 | 0 | 0 | 16 | = 4097 |
3 | 2 | 1 | 0 | 位数 |
---|---|---|---|---|
0 | 2 | 4 | 0 | 十六进制数 |
0 | 2*162 | 4*161 | 0 | = 576 |
总结: 原数 * 16的n次方(位数=n)
十进制转X进制
二进制
将要转换的数字直接除二,最后商为0为止
要转换的数字 | 商 | 余数 |
---|---|---|
56 | 28 | 0 |
28 | 14 | 0 |
14 | 7 | 0 |
7 | 3 | 1 |
3 | 1 | 1 |
1 | 0 | 1 |
所以56的二进制是111000(从下往上排列)
八进制
要转换的数字 | 商 | 余数 |
---|---|---|
99 | 12 | 3 |
12 | 1 | 4 |
1 | 0 | 1 |
所以99的八进制是143(从下往上排列)
十六进制
要转换的数字 | 商 | 余数 |
---|---|---|
498 | 31 | 2 |
31 | 1 | 15 |
1 | 0 | 1 |
所以498的十六进制是1f2(从下往上排列)
二进制,八进制,十六进制之间的转换
二进制和八进制
八进制的1位对应二进制的3位
二进制>>八进制
10111101010101010010101
- 我们把这个二进制数字进行分组,每组3位
可以分为
010 111 101 010 101 010 010 101
- 然后按照二进制规律转换
分别对应2 7 5 2 5 2 2 5
这个数字就是八进制数
八进制>>二进制
1 2 4 5 6 7
- 直接把每位数字对应的数进行转换,使用二进制规律8,4,2,1
分别对应,也是从右往左
001 010 100 101 110 111
二进制和十六进制
二进制>>十六进制
十六进制的1位对应二进制的4位
010111101010101010010101
- 我们把这个二进制数字进行分组,每组4位
可以分为
0101 1110 1010 1010 1001 0101
- 然后按照二进制规律转换
分别对应5 e a a 9 5
十六进制>>二进制
9 a 8 f 7
- 直接把每位数字对应的数进行转换,使用二进制规律8,4,2,1
分别对应,也是从右往左
1001 1010 1000 1111 0111
扩展
八进制和十六进制
我们要把欲转换的数字转换为二进制,然后再进行转换
八进制>>十六进制
37231
- 转为二进制
11111010011001
- 转为十六进制,分组每组4位
0011 1110 1001 1001
对应的数为3 e 9 9
十六进制>>八进制
8fc6
- 转为二进制
1000111111000110
- 转为八进制,分3组每组3位
001 000 111 111 000 110
对应的数为:1 0 7 7 0 6