进制转换
进制!基础的基础,搞清楚其中的原理之后就不觉得难的了
下方灵魂画手出现!!!
一.进制的概念
十进制:逢十进一,借一当十!有十个数值位,0-9
二进制:逢二进一,借一当二!有两个数值位,0和1
计算机中,常见的还有8进制和16进制!
其中,
2进制的数值是0和1
10进制数值是0-9
8进制的数值位为0-7
16进制的数值位为0-F,从10开始用字母代替,10:A,15:F
二、十进制之间的转换
为了使各自进制之间可以互相的转换,引入了权的概念:
(1234.56)10 = 1*103 + 2*102 + 3*101 + 4*100 + 5*10-1 + 6*10-2
上面所有标红的,都叫做十进制的权!
其他各自进制转换为十进制,都是按权展开:
比如:
2进制转10进制
(1101.11)2 = 1*23 + 1*22 + 0*21 + 1*20 + 1*2-1 + 1*2-2 = (13.75)10
8进制转10进制
(1234.56)8 = 1*83 + 2*82 + 3*81 + 4*80 + 5*8-1 + 6*8-2
16进制转10进制
(1234.56)16 = 1*163 + 2*162 + 3*161 + 4*160 + 5*16-1 + 6*16-2
三.进制与进制转换
(1)十进制转二进制:
需要整数部分和小数部分分别转换!
整数部分转换为二进制:
1, 除二取余法:不停的除以2,不停的取余数,一直到商为0为止,然后从下往上依次取得余数即可!
2, 填充法(填“1”法)
拿67为例:
除二取余法:
所以,(67)10 = (1000011)2
注:(67)10 = (1000011)2 的意思是67是10进制数值,它的二进制数值是1000011
填充法:
(13)10= 1*23 + 1*22 + 0*21 + 1*20 =(1101)2
例子1:(67的二进制)
例子2:(769的二进制)
(2)小数部分转换为二进制:
乘二取整法!
不停的拿小数乘于2,不停的取走它的整数部分(注意是取走整数留0),如果取成了0.0就可以结束了,然后是从上往下依次取得整数部分即可!
(0.75)10 = (0.11)2
注意:不是每一个小数都可以百分百精确的转换为二进制,我们一般精确到后小数点后5位!
该小数是:0.10101
(3)十六进制与十进制的互转
八与十六进制转换为十进制都是按权展开!
十进制转换为八进制与十六也是整数部分与小数部分分开转换:
a.十进制转八进制:整数部分就是除8取余,小数部分是乘8取整
最后(57.25)10 = (71.2)8
b.十进制转十六进制:整数部分就是除16取余,小数部分是乘16取整
(57.25)10 = (39.4)16
(4)二进制与八进制互转
注意:
上面的所有的除X取余和乘X取整都只适合十进制与其他进制之间的互转!
有一个方法就是以十进制作为中间的桥梁!但是不建议!
数数(计数) |
二进制 |
八进制 |
0 |
000 |
0 |
1 |
001 |
1 |
2 |
010 |
2 |
3 |
011 |
3 |
4 |
100 |
4 |
5 |
101 |
5 |
6 |
110 |
6 |
7 |
111 |
7 |
8 |
1000 |
10 |
9 |
1001 |
11 |
a.八进制转二进制:其实就是一拆三!
b.二进制转八进制:其实就是三并一!
(5)二与十六之间的互转
数数(计数) |
二进制 |
十六进制 |
0 |
0000 |
0 |
1 |
0001 |
1 |
2 |
0010 |
2 |
3 |
0011 |
3 |
4 |
0100 |
4 |
5 |
0101 |
5 |
6 |
0110 |
6 |
7 |
0111 |
7 |
8 |
1000 |
8 |
9 |
1001 |
9 |
10 |
1010 |
A |
11 |
1011 |
B |
12 |
1100 |
C |
13 |
1101 |
D |
14 |
1110 |
E |
15 |
1111 |
F |
16 |
10000 |
10 |
17 |
10001 |
11 |
所以:
a.十六进制转二进制:其实就是一拆四
b.二转十六:其实就是四并一
(6)八进制与十六进制之间的互转
a.八进制转十六进制:先一拆三,再四并一
(763.24) 8 = (159.108)16=(E9.A8)16
b.十六进制转八进制:先一拆四,再三并一
(BFD.9C)16 = (5773.470)8
到了这里进制间的互相转换完毕