900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 计算机数制转换操作方法 计算机数制转换新方法

计算机数制转换操作方法 计算机数制转换新方法

时间:2022-02-20 14:04:35

相关推荐

计算机数制转换操作方法 计算机数制转换新方法

摘要:本文分析了常用数制之间转换的方法,找出了其中规律,提出了数制转换的新方法,从而有利于学生迅速领会和掌握数制转换的技巧。

关键词:数制转换;权值;基数

中图分类号:G642 文献标识码:B

文章编号:1672-5913 () 24-0096-03

1基本概念

1.1数制及数制的基数

数制是人类创造的数的表示方法,它是用一组代码符号和一套统一的规则来表示数的。基数是一种数制中代码符号的个数。基数常用R表示,如十进制有0、1、2、3、4、5、6、7、8、9共十个代码,基数为10。二进制有0和1两个代码,基数为2。

常用的数制有十进制、二进制、八进制和十六进制,它们分别用大写字母D(Decimal)、B(Binary)、O(Octal)和H(Hexadecimal)来表示。常用的数制及其基本代码符号见表1。

表1 常用进制

注:有的书上用Q作为八进制的表示符号

1.2权

数制中的权是表示在一种数制下的数中某一位置上的数字所代表数值的大小。对于多位数,每一位数的数字乘以权就是该位数所表示的数值的大小,称为该位的位权。我们知道,基数为R数制相关的概念通式可以表示为:

2 不同数制之间的转换

计算机中的数制转换的方法很多,若能将这些方法进行进一步的总结,使知识结构系统化,将能更便于用户掌握。本节就从这样的角度出发分析DB(含义为十进制转换为二进制,以下相同)、DO、DH以及BD、OD、HD和BO、BH、OH的转换基本思路。

2.1十进制数转换为基数为R的R(R取值为2、8、16)进制除数

对于十进制整数转换为一个R进制数,我们可以使用“除R取余”法。对于带小数的十进制数,整数部分用“除R取余”法,小数部分用“乘R取整”法。另外需要说明的是,十进制中存在无限循环小数的现象,对于带小数的十进制数在转换为二进制时也会出现无限循环的现象。我们可以抽象为如图1所示,它给出了十进制整数转换为R进制的一般过程。

2.2基数为R的R进制数转换为十进制数

基数为R的R进制数转换为十进制数,我们可以用一种称为“按位权值累加法” 的方法进行运算,如(1)式所示,其转换过程我们抽象为图1所示。

图1

注:R为基数,在图1中取值为2、8、16

2.3六进制转换成二进制

八进制或十六进制转换成二进制我们采用的是“逐位分解映射法”。即把每一位八进制(或十六进制)数改写成等值的三位(或四位)二进制数即可,且保持高低位次序不变。如图2所示。例如(20.05)8=(010000.000101)2 ,其转换过程如图4所示。

图2

2.4转换成八进制和十六进制

二进制转换成八进制或十六进制我们采用“分组映射法”。即保持高低位次序不变,从低位开始分组,每三位(或四位)用一个等值的八(或十六)进制数来代替。如果是一个二进制的小数,则以小数点为分界点,向两端每三(或四位)用一个等值的八(或十六)进制数来代替。不够三(或四位)的可根据需要在低位或高位补零,以满足三(或四位)一组。例如,(11101.1110101)2=(1D.EA)16,其转换过程如图6所示,其中图中虚线方格中的“O”都是根据需要在低位和高位补的零。

图6

2.5八进制和十六进制之间的转换

八进制和十六进制之间的转换目前没有规律可循,我们一般情况是以二进制作为桥梁,先把它转换为二进制,然后再按照二进制和八进制、二进制和十六进制之间的转换方法进行转换。如图3所示。

图3

图4

图5

3计算机数制转换新方法

我们知道,十进制转换为二进制,我们采用的方法为“除2取余”的办法,调查表明,这种方法对小于50数值效率较高,但对一个三位甚至四位的十进制数就显现出很大的局限性。

在十进制数转换为二进制数过程中,我们知道:

(2)10=21=(10)2

(4)10=22=(100)2

(8)10=23=(1000)2

(16)10=24=(10000)2

(32)10=25=(100000)2

(64)10= 26=(1000000)2

……

(0.5)10=2-1=(0.1)2

(0.25)10=2-2=(0.01)2

(0.125)10=2-3=(0.001)2

(0.0625)10=2-4=(0.0001)2

(0.03125)10=2-5=(0.00001)2

(0.015625)10=2-6=(0.000001)2

……

通过上述,我们发现如下的规律:

① 一个十进制整数N(N≥1),如果它等于2的i(i为大于等于零的整数)次方,那么数N转换为二进制数W的代码结构为最高位 “1”加上低位i个“0”。

即:

② 一个十进制小数M(M0),如果它等于2的j(j为小于零的整数)次方,那么数N转换为二进制数X的代码结构为小数点后|j|-1个“0”加上“1”。

即:

对于十进制数转换八进制、十六进制数,我们知道:

(8)10=81=(10)8

(64)10=82=(100)8

(512)10=83=(1000)8

(4096)10=84=(10000)8

……

(16)10=161=(10)16

(256)10=162=(100)16

(4096)10=163=(1000)16

(65536)10=164=(10000)16

……

通过对上述观察,我们发现如下的规律:

③ 一个十进制整数U(U≥1)如果等于8的k(k为大于等于零的整数)次方,那么数U转换为八进制数Y的代码结构为1加上k个“0”。

即:

同理,我们可以得出:

④ 一个十进制整数V(V≥1)如果等于16的h(h为大于等于零的整数)次方,那么数V转换为十六进制数Z的代码结构为1加上h个“0”。

即:

由②我们可以得出⑤⑥:

⑤ 一个十进制小数P(P0),如果它等于8的m(j为小于零的整数)次方,那么数P转换为二进制数G的代码结构为小数点后|m|-1个“0”加上“1”。

⑥ 一个十进制小数S(S0),如果它等于16的n(n为小于零的整数)次方,那么数S转换为二进制数T的代码结构为小数点后|n|-1个“0”加上“1”。

我们知道,任何一种数制的数都可以将其如(1)式所示按权展开。

如果将R进制的数anan一1an一2…a0.a-1a-2…a-m (R)转换为K进制数bnbn一1bn一2…b0。b-1b-2…b-m(K),我们只关心数anan一1an一2…a0是否等于 和a-1a-2…a-m是否等于 ,然后,将各位权转换为目标数制K,根据①②③④⑤⑥总结的规律,在转换过程中,我们只需对K进制下的Ri(-M≤i≤N)做逻辑加法运算,即可得到欲要转换的数制,这种方法我们把它称为“位权转换累加法”。其转换过程可用图6表示。

我们看下面的例子。例如,278.1875)10=()2,我们使用以下运算:

(278.1875)10=(256)10+(16)10+(4)10+(2)10+(0.125)10+(0.0625)10=28+24+22+21+2-3+2-4

=(100000000)2+(10000)2+(100)2+(10)2+(0.001)2+(0.0001)2

=(10000010.0011)2

其转换过程可用图7表示。

图7

综合①②③④⑤⑥我们还发现,如果一个十进制整数为偶数,那么它转换为二进制数最低位必然为0;如果一个十进制整数为奇数,那么它转换为二进制数最低位必然为1。

4结束语

本文总结了常用数制的转换方法,并在此基础上提出了“位权转换累加法”,其特点是可以快速进行数制间的转换,转换效率依赖于对目标数制位权的熟练程度。实践证明,该方法对十进制转换二进制效率较高,但对十进制转换为八进制、十六进制效率较低,原因归结于人们对基数8的位权和基数16的位权熟练程度不够。由于基数8和16分别是2的三次方和四次方,所以不影响该方法的使用和推广。在教学过程中,学生乐于接受“位权转换累加法”,该方法不仅会促进我们对现有数制转换方法的理解掌握,也可作为新转换方法提出的理论依据。

参考文献:

[1] 陈清华,郑涛,陈家伟. 数制转换的本质和方法[J]. 江西师范大学学报(自然科学版),,30(2).

[2] 沈美明,温冬婵.IBM―PC汇编语言程序设计[M]. 北京:清华大学出版社,1992.

作者简介

陈顺立(1973-),硕士研究生,研究方向为课程与教学论(计算机)。

联系方式:重庆 上桥 重庆工程职业技术学院计算机系(400037)

TEL:6520738513983945731

E-mail:

注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。