数制间的转换

作者:我就是个世界 发表于:2007-07-24

数制间的转换

学习指导:
  在本知识点主要学习各种数制表示形式之间的转换方法,最基本的是十进制与二进制之间的转变,八进制和十六进制可以借助二进制来实现相应的转换;转换时要特别注意要分整数部分和小数部分分别进行转换。

  同一个数可采用不同的计数体制来表示,各种数制表示的数一定可以相互转换。
  数制转换:一个数从一种进位制表示形式转换成等值的另一
种进位制表示形式,其实质为权值转换
  相互转换的原则:转换前后两个有理数的整数部分和小数部分必定分别相等。


[separator]


一、十进制与非十进制数间的转换

对整数和小数转换方法不同,因此必须分别进行转换,然后再将两部分转换结果合并得完整的目标数制形式。

1、十进制至二进制转换

  • 整数部分的转换

    除基取余法用目标数制的基数(R=2)去除十进制数,第一次相除所得余数为目标数的最低位K0,将所得商再除以该基数,所得的余数为目标数的次低位K1,反复执行上述过程,直到商为“0”,所得余数为目标数的最高位Kn-1。
  • 小数部分的转换

    乘基取整法用该小数乘以目标数制的基数(R=2,第一次相乘结果的整数部分为目标数的最高位K-1,将其小数部分再乘基数所得的结果的整数则为目标数的次高位K-2,反复执行上述过程,直到小数部分为“0”,或满足要求的精度为止(即根据设备字长限制,取有限位的近似值)。

例1:

(81.65)10 = ( ? )2 要求精度为小数五位。

1.整数部分的转换

数制间的转换

故有(81)10 =(1010001)2

2.小数部分的转换
数制间的转换
故有 (0.65)10 = (0.10100)2
由此综合两例结果得 (81.65)10 = (1010001.10100)2   

同理: 可采用同样的方法将十进制数转成八进制、十六进制数,但由于八进制和十六进制的基数较大,做乘除法不是很方便,因此需要将十进制转成八进制、十六进制数时,通常是将其先转成二进制,然后在将二进制转成八进制、十六进制数。


2、二、八、十六进制至十进制转换

转换方法:将相应进制的数按权展成多项式按十进制求和。

例2:

(1101.1)2 = 1×23+1×22+0×21+1×20+1×2-1 =8+4+1+0.5=13.5
(F8C.B)16 = F×162+8×161+C×160+B×16-1=3980.6875

二、非十进制数间的转换

  • 二进制数与八进制数间的转换    数制间的转换

由于八进制的基数R = 8 = 23,必须用三位二进制数来构成一位八进制数码,因此采用分组对应转换法。

转换方法:将二进制数转换成八进制数时,首先从小数点开始,将二进制数的整数和小数部分每三位分为一组,不足三位的分别在整数的最高位前和小数的最低位后加“0”补足,然后每组用等值的八进制码替代,即得目标数。反之,则可将八进制数转换成二进制数。
例3:

11010111.0100111 B = ? Q

数制间的转换

得 11010111.0100111 B = 327.234 Q



  • 二进制数和十六进制数间的转换    数制间的转换

转换方法:与上述相仿,由于十六进制基数R = 16 = 24,故必须用四位二进制数构成一位十六进制数码(见表1-1),同样采用分组对应转换法,所不同的是此时每四位为一组,不足四位同样用“0”补足。

4

111011.10101 B = ? H

数制间的转换

故有111011.10101 B = 3B.A8 H

分享:

扫一扫在手机阅读、分享本文

已有2条评论