内容正在载入中,请稍后……
公告
About me
搜索
统计
其他
24 Jul.2007

数制间的转换 不指定

作者: 我就是个世界   分类:技术&学习   出处:本站原创            | |

数制间的转换

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

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



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

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

1、十进制至二进制转换

  • 整数部分的转换

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

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

例1:

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

1.整数部分的转换

ch1_1.gif (2916 bytes)

故有(81)10 =(1010001)2

2.小数部分的转换
ch1_2.gif (2717 bytes)
故有 (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

ch1_3.gif (1834 bytes)

得 11010111.0100111 B = 327.234 Q



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

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

4

111011.10101 B = ? H

ch1_4.gif (1701 bytes)

故有111011.10101 B = 3B.A8 H

分享到QQ空间
最后编辑: 我就是个世界 编辑于July 24, 2007 02:32
时间:02:16 评论(2) 引用(0) 阅读(5747) Tags: , , ,
Vilore
June 25, 2008 17:49
zan谢了!
在人间
April 23, 2008 13:21
[b]文字[/b顶顶顶……
分页: 1/1 第一页 1 最后页
发表评论
  昵称 [注册]
  密码 (游客无需密码)
  网址
  电邮
OpenID登入 权限选项 表情