各种进制之间的转换方法
⑴二进制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
◆八进制数和二进制数对应关系表
八进制Q | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
二进制B | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
⑵二进制数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
◆十六进制数、十进制数和二进制数对应关系表
十六进制H | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
十进制D | 0 | 1 | 2 | 3 | 4 | 5二进制小数如何转换成十进制 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
二进制B | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
⑶八进制数Q转换成十六进制数H:八进制数Q和十六进制数H的转换要通过二进制数B来实现,即先把八进制数Q转换成二进制数B,再转换成十六进制数H。
例:◆八进制数转换成十六进制数:
7402.45Q = 111 100 000 010 . 100 101B
= 111100000010.100101B
= 1111 0000 0010 . 1001 0100B
= F 0 2 . 9 4H
= F02.94H
◆十六进制数转换成八进制数:
1B.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转换成二进制数:
▲竖式表示:
十进制整数 余数 系数Ki 位
2∟233
2∟116 1 K0 最低位
2∟58 0 K1
2∟29 0 K2
2∟14 1 K3
2∟7 0 K4
2∟3 1 K5
2∟1 1 K6
0 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 0.7
16∟25 E K0 × 16
16∟1 9 K1 11.2 B K-1
0.2
0 1 K2 × 16
3.2 3 K-2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论