背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-6141.html    注册17xie 一起来写书 实现您的出书梦想!

2.十进制数转换为二进制数

1)整数的转换

把十进制整数连续除以2,记录其余数,就得到二进制数,这个方法简称为除2取余法。例如:

按由高位到低位写下来就得到:

5910=(1110112

 

2)小数的转换

把十进制小数连续乘以2,取出其积的整数,就得到二进制数,这个方法简称为乘2取整法。

 

 

例如:

于是得到:

0.562510=0.10012

小数换算中,不是都能得到小数部分乘积为零的结果,这时,只能按精度要求取若干位,作为它的近似值。

例如:

0.310=(0.01001…)2≈(0.010012

3)既有整数部分又有小数部分的数,转换时要把整数部分和小数部分分别计算,再把两部分加起来,就是一个二进制数。例如:

59.310=(5910+(0.310

上例已求出(5910=(1110112、(0.310≈(0.010012

所以(59.310≈(10111011.010012

1.6.3  八进制和十六进制数

计算机只能识别二进制数,当数值愈大时,二进制数表示的位数就愈多,例如

11011011011.0012=(1755.12510

这个二进制数有11位,小数有3位。(可以表示到上千的十进制数),在读数和书写时,都极不方便。因此,在编写程序时又常常使用八进制数和十六进制数。

和十进制、二进制的规则相仿,八进制数采用8个符号(即01234567),逢8进位。十六进制数采用16个符号(即0123456789ABCDEF),逢16进位。例如:

1681×816×80=(1410

25102×1615×160=(3710

以下介绍各种数制之间的转换方法:

1)八进制、十六进制转换为十进制

方法与上面二进制和十进制的转换方法相类似。如上例所示。

2)八进制数转换成二进制数

把每位八进制数用所对应的3位二进制数表示,就转换为它的二制数。

例:         3          2          68

                               

001     010   110

即(3268=(110101102

3)十六进制数转换成二进制数

把每位十六进制数用所对应的4位二进制数表示,就转换为的二进制。

例如:         7           A           316

                                      

              0111   1010   0011

即(7A316  =111101000112

4)二进制整数转换为八进制数

从最低位开始,向左每3位分为一组,不够3位的用0补足3位,将每组的二进制数按对应的八进制数写出,就转换成了八进制数;二进制小数,则从小数点开始向右每3位划为一组,不够三位,用0补充3位,写出其对应的八进制数,例如:

11101001110.11012

分组为:             011)(101)(001)(110.110)(100

对应的八进制数为:                  .      

   3      5     1     6  .   6     4

即(11101001110.11012=(3516.648

5)二进制数转换成十六进制数

从最低位开始,向左每4位分为一组,不够4位的用0补足4位,将每组的二进制数按对应的十六进制数写出,就转换成了十六进制数,二进制小数,则从小数点开始向右每4位划为一组,不够4位用0补足4位,写出其对应的十六进制数。例如:

                      1011011.011012

分组为:               0101        1011    0110   1000

对应的十六进制数                                           

                          5               B           6           8

即(1011011.011012=5B.6816

1.6.4  编码

我们用01来表示二进制,是数的一种编码表示。编码的方法在我们生活中也是常见的,如通信中的邮政编码、电话号码、电报中的莫尔斯码、身份证代码、学号代码、汉字的国际码、区位码等等。

在计算机中只给数的表示进行了编码还不够,要处理数的符号是正还是负怎样办?处理英文字符、乘除,以至汉字又怎么办?所以都得用01来给它们编码。现在最通用的一种给字符的编码是ASCII代码(即American Standard Code for Information Interchange的缩写),例如英文字母A,用8位二进制数01000001表示,换成十六进制表示为(4116,各种字符的ASCI代码,列在附录一中。

计算机要做各种运算和处理,这些动作也需要编码,例如要它做56的加法,就要有取数、进行加、送数等操作,对这些操作的说明也用01的符号串编码,这就形成了计算机的指令码。

总之,计算机只能识别01两个符号。和计算机沟通信息,就得要以这两个最简单的符号为基础,对各种信息形式进行变换,把计算机不能直接识别的信息变换为计算机能识别 的信息。

1.7  计算机的工作原理

1.7.1  计算机的指令系统

人们要计算机处理信息,就要给计算机规定一些最基本的操作,并用01来表示这些操作,这就构成为一条一条的指令。在设计的时候,就给它规定了一套指令,称之为指令系统(即Instruction Set)。不同型号的计算机,指令系统也不相同。而一条指令由操作码(Opcode)和操作数(Oprand)两部分构成,例如在Z80中有这样一条指令:

11000110      00000110

操作码        操作数

操作码11000110表示做加法的操作,操作数是00000110。这条指令的功能就是把操作数00000110与计算机的累加器中的数相加,相加的和仍放在累加器中,例如先累加器中放一个数00000101,执行这条指令的过程如图1-1所示。这条指令用十六进制表示为:C6    06

1-1  执行过程

1.7.2  计算机的算题过程

计算机算题要由要事先告诉它算题的方法和步骤,而且要把动作分解得非常之细,每一步都是计算机指令能执行的,它才能按照人们设计的步骤,一步一步地去执行。如果人们设计的步骤是正确的,计算机就能算得正确的结果,如果设计的步骤不正确,计算机就不能算出正确的结果,甚至没有结果。

以极简单的56的加法为例。它的解题步骤如下:

1)把数字56送到机的内存中存放起来;存贮单元都要有一个编号,称为地址。例如43号地址存入数5,写为(43)←5,同样,(44)←6

2)把数5取出来,送到累加器;

3)把数6取出来,与累加器中的数相加,结果放在累加器中;

4)把累加器结果送回到内存的45号地址存放起来,即(45)←11

5)把结果输出到打印机或显示器上;

6)结束。

这些解题步骤的集合,我们就称之为程序,第1步是数据的输入,第5步是数据的输出。24是计算机内的处理,用某种机器指令写出24这一过程,有如下的形式:

存贮地址          机器指令

           

00010000          00111011

00010001          00000000

00010010          00001011

00010011          00100001

00010100          00000000

00010101          00001100

00010110          10000110

00010111          00110010

00011000          00000000

00011001          00101101

00101011          00000101

00101100          00000110

00101101          00001011

这些由机器指令构成的有序集合,就称为机器语言程序。计算机的工作就是按规定顺序地执行程序。人们使用计算机就要为它编制程序,我们称为程序设计。用机器语言编写程序很不直观,初学者看到这个程序就不知其所以然了。不必着急,看不懂没关系,这只是让你对机器语言有点感性认识。对于计算机来说,只有这样的机器语言,才能执行。

1.7.3  存贮程序原理

有了指令和程序的概念,就可以进一步了解计算机的工作原理,计算机是基于存贮程序的方法工作的。

首先,把程序和数据通过输入设备送往内存。一般的内存都是划分为很多存贮单元,每个存贮单元包括字节数随计算机的机型不同而不同,一个存贮单元通常称为字(Word),一个字的位(Bit)的多少,称为字长(Word Length),例如,中型机M340,字长为32位(即4Bytes),微机字长有8位、16位、32位等。

每个存储单元都有地址编号,这样按一定顺序把程序和数据存起来,而且还把内存分为若干区域,比如有专门存放程序的程序区和专门存放数据的数据区。

其次,执行程序,必须从第一条指令开始,以后一条一条的执行。一般的情况下按存放地址号的顺序,由小到大依次执行,当遇有条件转移的指令时,才改变执行的顺序。每执行一条指令,都要经过三个步骤。第1步,把指令从内存中送往译码器,称为取指;第2步,译码器把指令分解成操作码和操作数,产生相应的各种控制信号送往各电路部件;第3步,执行相应的操作。这一过程是由电子线路来控制的,从而实现自动连续的工作。

这一原理是计算机结构设计的基础,它是美籍匈牙利数学家冯·诺依曼(Von Neumann1946年提出并论证的,因此常把这一类型的计算机称为冯·诺依曼计算机,迄今为止,各种计算机仍属这一类型。


字数:6874    最后更新:1年以前 [08-20 20:35]我爱钱 修改
本页编辑者:我爱钱  
[前一页]:第一章  [后一页]:第一章
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号