各种进制之间的转换方法
⑴二进制B转换成八进制Q:以小数点为分界线,整数部分从低位到高位,小数部分从高位到低位,每3位二进制数为一组,不足3位的,小数部分在低位补0,整数部分在高位补0,然后用1位八进制的数字来表示,采用八进制数书写的二进制数,位数减少到原来的1/3。例:◆二进制数转换成八进制数:
110110.1011B = 110 110 . 101 100B
↓↓↓↓
6    6 .    5    4 = 66.54Q
◆八进制数36.24Q转换成二进制数:3    6 .    2 4Q
↓↓↓↓
011 110 . 010 100 = 11110.0101B
⑵二进制数B转换成十六进制数H:以小数点为分界线,整数部分从低位到高位,小数部分从高位到低位,每4位二进制数为一组,不足4位的,小数部分在低位补0,整数部分在高位补0,然后用1位十六进制的数字来表示,采用十六进制数书写的二进制数,位数可以减少到原来的1/4。
例:◆二进制数转换成十六进制数|:
101101011010.100111B = 1011 0101 1010 . 1001 1100B
↓↓↓↓↓
B    5    A . 9
C = B5A.9CH
支持小数点的进制转换器
◆十六进制数转换成二进制数:AB.FEH = A    B .    F EH
↓↓↓↓
1010 1011. 1111 1110 = 10101011.1111111B
◆十六进制数、十进制数和二进制数对应关系表
⑶八进制数Q转换成十六进制数H:八进制数Q和十六进制数H的转换要通过二进制数B 来实现,即先把八进制数Q转换成二进制数B,再转换成十六进制数H。
例:◆八进制数转换成十六进制数:
7402.45Q = 7    4 0    2 .    4 5Q
↓↓↓↓↓↓
111 100 000 010 . 100 101B
= 111100000010.100101B
= 1111 0000 0010 . 1001 0100B
↓↓↓↓↓
=    F 0    2 . 9 4H = F02.94H
◆十六进制数转换成八进制数:
1B.EH =1    B. EH
↓↓↓
0001 1011 . 1110B
= 11011.111B
= 011 011 . 111B
↓↓↓
=    3    3 . 7Q = 33.7Q
⑷二进制数B转换成十进制数D:利用二进制数B按权展开成多项式和的表达式,取基数为2,逐项相加,其和就是相应的十进制数。
例:◆二进制数转换成十进制数:
110010.1B =
1×25+1×24+0×23+0×22+1×21+0×20+1×2-1
= 32+16+2+0.5 = 50.5
◆求8位二进制数能表示的最大十进制数值:
最大8位二进制数是11111111B
11111111B = 1×27+1×26+1×25+1×24+1×23+1×22+1×21+1×20 = 255
⑸十进制数D转换成二进制数B:十进制数转换成二进制数时,整数部分和小数部分换算算法不同,需要分别进行。整数部分用除基取余法转换,小数部分用乘基取整法转换。
①除基取余法(整数部分):需要转换的整数除以基数2,取其商的余数就是二进制数最低位的系数K0,将商的整数部分继续除以基数2,取其商的余数作二进制数的高一位的系数K1,……,这样逐次相除直到商为0,即得到从低位到高位的余数序列,便构成对应的二进制整数。
例:◆十进制数233转换成二进制数:
▲竖式表示:
十进制整数余数系数K 位
2∟233    1 K0
2∟116 0 K1 最低位
2∟58 0 K2
2∟29    1 K3
2∟14 0 K4
2∟7    1 K5
2∟3    1 K6
2∟1    1 K7 最高位
▲线图表示:233÷2 →116 →58 →29 →14 →7 →  3 →  1 →0
↓↓↓↓↓↓↓↓
余数:  1 0 0    1 0    1    1    1
位:最低位最高位
从最后一次余数开始向上(向左)顺序(即从最高位向最低位)写出,得到换算结果:233D = 11101001B ②乘基取整法(小数部分):把要转换的小数乘以基数2,取其积的整数部分作对应二进制小数的最高位系数K-1,将积的小数部分继续乘以基数2,新得到积的整数部分作二进制下一位的系数K-2,……,这样逐次乘基,即得到从高位到低位积的整数序列,便构成对应的二进制小数。
例:◆十进制小数0.8125转换成二进制小数:
▲竖式表示:
十进制小数积的整数部分系数位
0.8125
×  2
1.6250    1 K-1最高位
0.6250
×  2
1.250    1 K-2
0.25
×    2
0.50 0 K-3
×    2
1.0    1 K-4最低位
▲线图表示:
0.8125 ×2 →0.625 →0.25 →0.5 →0
↓↓↓↓
积的整数部分:  1    1 0    1
位:最高位最低位
将乘积的整数部分从上到下(左到右)顺序写出,得到换算结果:0.8125D = 0.1101B ③综合结论:一个既有整数又有小数部分的十进制数被送入计算机后,转换将分三步进行:1、由机器把整数部分按除基取余法进行转换;2、小数部分按乘基取整法进行转换;3、将已转换的两部分合在一起就是所求的二进制数值。但并不是所以的十进制小数都能转化成有限位的二进制小数,有时整个过程会无限进行下去。(例如:0.3D=0.0011001100…B)此时,可以根据精度的要求并考虑计算机字长位数取一定位数后,“0舍1入”,得到原十进制数的二进制近似值。
例:◆求14.4375输入计算机后转换成二进制数的形式:
解∵14D = 1110B 0.4375D = 0.0111B
∴14.4375D = 1110.0111B
⑹十进制数与任意进制的转换:1、任意进制数转换成十进制数的方法和二进制数转换成十进制数一样,把任意进制数按权展开成多项式和的表达式,再把各位的权与该位上系数相乘,乘积逐项相加,其和就是相应的十进制数。2、十进制数转换成任意进制数时,整数部分用“除基取余法”,小数部分用“乘基取整法”,然后将得到的任意进制的整数与小数拼接,即为转换的最后结果。
例:◆十二进制数4602.3转换成十进制数:
解(4602.3)12 = 4×123+6×122+0×121+2×120+3×12-1
= 6912+864+0+2+0.25
= 7778.25D
◆将414.7D转换成十六进制,小数精度取2位:
解整数部分取余数系数
16∟414    E K0
16∟25 9 K1
16∟1
0    1 K2
小数部分取整数系数0.73
0.2
11.2    B K-1 0.2
×16
3.2    3 K-2 0.2
× 16
3.2    3 K-3转换结果:41
4.7D = 19E.B3H