进制的转换
一、进制的表示
二进制(B):
0
,
1
,
10
,
11
,
100
,
101
,
110
,
111
,
1000
0,1,10,11,100,101,110,111,1000
0,1,10,11,100,101,110,111,1000
对应的十进制是:
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
0,1,2,3,4,5,6,7,8
0,1,2,3,4,5,6,7,8
八进制(O):
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
10
,
11
,
12
0,1,2,3,4,5,6,7,10,11,12
0,1,2,3,4,5,6,7,10,11,12
对应的十进制是:
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
0,1,2,3,4,5,6,7,8
0,1,2,3,4,5,6,7,8
十进制(D):
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
0,1,2,3,4,5,6,7,8,9,10
0,1,2,3,4,5,6,7,8,9,10
十六进制(H):
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
A
,
B
,
C
,
D
,
E
,
F
,
10
,
11
,
12
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,12
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,12
注意:计算机中的一切数据,如数字,汉字,图片,声音,视频,指令等都是用二进制进行表示和传输的。–通过转码展示出来
ASCII:美国信息交换标准代码,一般使用7位二进制数来表示字母,数字,标点符号及部分特殊控制字符(128种)(例如:A :65,a:97)
二、 十进制和其他进制间的转换
1、其他进制转十进制
R进制转十进制使用按权展开法,其具体操作方法为:将R进制的每一位数值用Rk 形式表示,即幂的底数是R,指数是k,k与改位和小数点之间的距离有关。
当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负数,其绝对值是该位和小数点之间数码的个数加1.
R进制数:
X
n
−
1
.
.
.
.
X
0
.
X
−
1
=
X
n
−
1
R
n
−
1
+
.
.
.
X
0
R
0
+
X
−
1
R
−
1
X_{n-1}....X_0.X_{-1} = X_{n-1}R^{n-1}+...X_0R^{0}+X_{-1}R^{-1}
Xn−1....X0.X−1=Xn−1Rn−1+...X0R0+X−1R−1
例如:二进制转十进制
10100.01
(
B
)
=
1
∗
2
4
+
1
∗
2
2
+
1
∗
2
−
2
=
20.25
(
D
)
10100.01(B)=1*2^4+1*2^2+1*2^{-2}=20.25(D)
10100.01(B)=1∗24+1∗22+1∗2−2=20.25(D)
例如:八进制
666.066
(
O
)
=
6
∗
8
2
+
6
∗
8
+
6
∗
8
0
+
6
∗
8
−
2
+
6
∗
8
−
3
=
438.105469
(
D
)
666.066(O)=6*8^{2}+6*8+6*8^{0}+6*8^{-2}+6*8^{-3}=438.105469(D)
666.066(O)=6∗82+6∗8+6∗80+6∗8−2+6∗8−3=438.105469(D)
2、十进制转其他进制
(1)十(D)进制转二进制(B)
整数:采用"除2取余,逆序排列"法,用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
小数:转换成二进制小数采用"乘2取整,顺序排列"法,具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止;然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
例如:255.625(D)=11111111.101(B)
(2)十(D)进制转八进制(O)
整数:采用"除8取余,逆序排列"法,先得到的余数作为低位有效位,后得到的余数作为高位有效位;
小数:转换成八进制小数采用"乘8取整,顺序排列"法
例如:266.67(D)=412.527(O)
266/8=33 ======余2
33/8=4 ======余1
4/8=0 ======余4
0.678=5.36 -------取整5
0.368=2.88 -------取整2
0.888=7.04 -------取整7
0.048=0.32 -------取整0
(3)十进制(D)转十六进制(H)
整数:采用"除16取余,逆序排列"法,先得到的余数作为低位有效位,后得到的余数作为高位有效位;
小数:转换成八进制小数采用"乘16取整,顺序排列"法
例如1616.16(D)=650.28155(H)
1616/16=101-----余0
101/16=6----------余5
6/16=0-------余6
0.1616=2.56
0.5616=8.96
0.9616=15.36
0.3616=5.76
…
其他进制也是同理
3、二进制,八进制,十六进制之间的转换
(1)二进制转八进制
取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位
例如:二进制转八进制
10100.011101(B)=24.35(O)
(2)二进制转十六进制
十六进制的计算是以小数点为中心,向左右两边扩展,4个数为一组
例如:10110011.1011(B)=B3.B(H)
整数:
1011
=
1
∗
2
3
+
1
∗
2
+
1
∗
2
0
=
B
1011=1*2^{3}+1*2+1*2^{0}=B
1011=1∗23+1∗2+1∗20=B
0011
=
1
∗
2
+
1
∗
2
0
=
3
0011=1*2+1*2^{0}=3
0011=1∗2+1∗20=3
小数:
1011
=
1
∗
2
3
+
1
∗
2
1
+
1
∗
2
0
=
B
1011=1*2^{3}+1*2^{1}+1*2^{0}=B
1011=1∗23+1∗21+1∗20=B
(3)八进制转二进制
将一位的八进制数转化为三位的二进制数,不足三位的补0
例如:
324(O)=011010100=11010100(B)
(4)十六进制转二进制
将一位的十六进制数转化为四位的二进制数,不足四位的补0
例如:
324(H)=001100100100=1100100100(B)
7C(H)=1111100(B)
(七)十六进制与八进制相互转换
可以通过将十六进制转为二进制之后转为八进制,八进制转十六进制也可同理。