计算机中数的进位制 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【meiwen.anslib.com - 电脑资料】

  电子计算机的产生(1946年)和发展是20世纪人类最伟大的成就之一,

计算机中数的进位制

。在短短的50年中,电子计算机的组成经历了以电子管、晶体管、中小规模集成电路以及大规模和超大规模集成电路为主要标志的四代的变化。与此同时,计算机软件技术也发生了巨大的变化。

  随着计算机技术和大规模集成电路技术的发展,微型计算机应运而生(20世纪70年代初期),并得到长足发展,尤其从20世纪90年代中期开始,更呈现突飞猛进之势。现代微型计算机的功能已远远超过过去的大型计算机。事实上,微型计算机的组成也经历了以微处理器位数为主要标志的四代变化,即从4位和低档8位机到中档和高档8位机,再到16位机,然后到32位机的发展。下一个目标是64位机。

  面对功能强大、结构复杂的现代微型计算机,要学习其组成原理,应从基础开始,循序渐进地学习,

  学习计算机,首先要弄清计算机中数的进位制。关于这一点,可用一句话来概括:当使用汇编语言或高级语言编程时一般采用十进制表示,有时出于某种需要也采用十六进制或二进制表示,而在计算机内部,数据的表示、存储及运算均采用二进制。

  1.二进制

  1)十进制回顾

  可以用三点来描述十进制:一是有十个数码(0、1~9);二是计数时逢十进一;三是采用位置表示法。所谓位置表示法,是指同一个数码在数中不同位置所表示的值不同。例如,数535.5中,数码5出现在百位,代表500;出现在个位,代表5;出现在小数点后第一位,代表0.5。一个数码所表示的值等于它乘以该位的权。所谓权是指某一位单位数字所表示的值。对十进制而言,从小数点向左,各位的权依次是l(100)、10(101)、100(102)、1000(103);从小数点向右,各位的权依次是0.1(10-1)、0.01(10-2)、0.00l(10-3)。高一位的权是低一位的10倍。

  2)什么是二进制

  和十进制相类似,也可以用三点来描述二进制:一是有两个数码(0和1);二是计数时逢二进一;三是采用位置表示法。从小数点向左,各位的权依次是20、21、22、23;从小数点向右,各位的权依次是2-1、2-2、2-3。高一位的权是低一位的2倍。

  3)计算机中为什么采用二进制

  计算机中采用二进制是基于以下三点:

  (1)容易表示

  从原理上讲,只要有两种稳定状态、并能进行状态转换的电路都可以用来表示二进制数码,用其中一种状态表示0,用另一种状态表示1。而表示十进制数码的单元电路必须有十种稳定状态,并能方便进行状态转换,时至今日还没有这样的电路。

  (2)运算简单

  以一位数的加法为例,对十进制需55条规则,而对二进制仅需3条规则(0+0=0;0+1=1+0:l;1+1=0,向高一位进位1)。

  (3)便于使用一种数学工具逻辑代数进行运算

  在计算机中,算术运算是通过逻辑电路来实现的。当然,逻辑运算也通过逻辑电路来实现。逻辑电路是和逻辑表达式相对应的。设计逻辑电路时,往往是先写出逻辑表达式,再进行电路实现。借助于逻辑代数,可将逻辑表达式变换成最简形式,从而使实现表达式的电路最简单。

  4)二进制数与十进制数的相互转换

  (1)二进制数转换成十进制数

  将每一位的数码乘以该位所对应的权,再求所得乘积的和。这种方法叫按权展开求和。

  例如:

  1011.101(2)=123+022+l21+120+12-1+02-2+12-3=11.625(10)

  由于二进制数的每一位只有0和1两种可能,而任何数乘1得本身,乘0得0,所以在进行转换时,可直接写出为1的位对应的权,再求和。上例可写成:

  1011.101(2):23+21+20+2-1+2-3=11.625(10)

  (2)十进制数转换成二进制数

  整数部分和小数部分需分别进行,然后再将转换结果写到一起,

电脑资料

计算机中数的进位制》(http://meiwen.anslib.com)。

  对整数部分,所用的方法是除以2取余,例如:

  于是:1l(10)=10ll(2)。

  对小数部分,所用的方法是乘2取整。例如将十进制小数0.8125转换为二进制:

  0.8125.625.25.5.0(每次乘积的小数部分)

  2222

  1101(每次乘积的整数部分)。

  第一次乘2的整数部分为转换结果小数点后第一位,第二次乘2得第二位,然后依此类推。所以,0.8125(10)=0.110l(2)。

  需要指出,有时无论怎样做下去,小数部分都不能为0,这表明这个十进制小数不能准确地用二进制表示,这时只能近似表示(0舍1入)。例如,按照上面的方法可得

  0.8(10):0.110011001100(2)

  取到小数点后第三位,为0.110(2);取到小数点后第四位,为0.1101(2)。

  2.十六进制

  1)什么是十六进制

  也可以用三点来描述:一是有16个数码,借用十进制数码0到9,再借用英文字母A、B、C、D、E、F分别表示10、11、12、13、14、15;二是计数时逢十六进一;三是采用位置表示法,但是,高一位的权是低一位的16倍。

  2)十六进制数与十进制数的相互转换

  (1)十六进制数转换成十进制数

  按权展开,求和,例如:

  21F(16)=2162+1161+15160=543(10).

  (2)十进制数转换成十六进制数

  与十进制数转换成二进制数相类似,整数部分和小数部分需分别进行,然后再将转换结果写到一起。对整数部分,所用的方法是除以16取余;对小数部分,所用的方法是乘以16取整。

  3)十六进制数与二进制数的相互转换(1)十六进制数转换成二进制数

  每一位十六进制数码用4位等值的二进制数表示即可。例如:

  21F(16)=001000011111(2).

  (2)二进制数转换成十六进制数

  以小数点为界,分别向左、向右,以四位为一组分组,每一组用一个等值的十六进制数码表示。注意,一组不够4位时,用0补足4位,特别对小数点后最右边一组必须补0。例如:

  可以看出,十六进制数与二进制数之间的转换相当方便。因此,常用十六进制作为二进制数的缩写。例如,在汇编语言源程序和高级语言源程序中,常用十六进制表示内存地址或输入/输出设备的I/O端口地址。

  在进行十进制数、十六进制数及二进制数相互转换时,经常要用到0一15(10)范围内三种进位制数的转换,其对应关系见表1-1。表中的对应关系需要牢记。

  3.二进制编码的十进制数(BCD码)

  计算机内部用二进制,而人们习惯用十进制。为了方便二者之间的转换,引入了BCD(BinaryCodedDecimal)码,用二进制来为十进制数编码,即每一位十进制数码用4位二进制数表示。表示的方法较多,最常用的是每一位十进制数码用与其值相等的4位二进制数来表示。这种BCD码称为8421码。例如,十进制数205的8421码为001000000101。

  BCD码和下面要介绍的十进制数码(字符0~9)的.ASCII码有简单的转换关系。借助于输入设备,可将一个十进制数用ASCII码的形式送人机器中,在计算机内部通过事先编好的程序,先将该数的ASCII码转换成BCD码,再将BCD码转换成二进制数,这样计算机就可以对其进行运算或其他处理了。当要把内部的一个二进制数输出时,也是通过事先编好的程序,将该数先转换成BCD码,再转换成ASCII码,通过输出设备显示或打印出相应的字符。

最新文章