第七章 试将下列十进制数化成二进制数。 ,(
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章
1、试将下列十进制数化成二进制数。
(215)10,(1024)10,(0.6875)10,(7.625)10
解:(215)10=11010111B
(1024)10=10000000000B
(0.6875)10=0.1011B
(7.625)10=111.101B
2、试将下列二进制数化成十进制数。
(110110001)2,(0.1011)2,(111.101)2,(101.011)2
解:(110110001)2=216
(0.1011)2=0.6875
(111.101)2=7.625
(101.011)2=5.375
3、一个二进制浮点数N可表示为N=±M×2E,试指出式中M和E的意义。答:M指尾数,一般取小数,E指阶码,即指数部分。
4、试给出三字节浮点数的格式。
5、试将下列十进制数化成三字节浮点数的形式。
(43981)10,(12937)10,(33.8125)10,(2920.75)10
解:(43981)10=1010101111001101B
三字节浮点数形式:00010000.1010101111001101即10ABCDH (12937)10=11001010001001B
三字节浮点数形式:00001110.11001010001001即0ECA24H
(33.8125)10=100001.1101000000
三字节浮点数形式:00000110.1000011101000000即068740H
(2920.75)10=101101101000.11B
三字节浮点数形式:00001100.1011011010001100即0CB68CH
6、试将下列三字节浮点数化成十进制数。
FDAF93H,07D2B4H,08A24BH,0C24B6H
解:FDAF93H=111111011010111110010011
阶码:-3
即-0.0001010111110010011=-0.0857295
07D2B4H=000001111101001010110100
阶码:7
即:1101001.010110100=105.3515625
08A24BH=000010001010001001001011
阶码:8
即:10100010.01001011=162.29296875
0C24B6H=000011000010010010110110
阶码:12
即:001001001011.0110=587.375
7、什么是规格化浮点数?如何将非规格化浮点数规格化?
答:浮点数中尾数的第一位数字不等于零,满足这一条件的数称为规格化浮点数。在进行规格化操作时,对原码表示的数,一般是先判断尾数的最高数值位是0还是1,若是0,则把尾数左移一位(左规格化),阶码减1再循环判断,若是1则结束操作。也可以进行右规格化。
8、试分析例7-1通用规格化子程序,画出程序框图。
解:
9、试分析7-2浮点数加减法处理子程序,画出程序框图。
解:
10、试分析例7-5浮点数乘法子程序,画出程序框图。解:
11、试分析例7-6浮点数除法子程序,画出程序框图。解:
12、对数据进行排序的目的是什么?试分析例7-13冒泡法排序子程序,画出程序框图。解:排序的目的是使一组任意的记录为按其关键字大小排序的线性的记录,是程序设计中经常遇到的任务。程序框图如下:
13、在线性表中,各个数据元素之间具有什么关系?
答: 表内的n个数据元素a1,a2, …a n具有线性(一维)的位置关系,即在表中a1是第一个数据,a2是第二个…a n是最后一个。在单片机中,通常用一组连续的存储单元依次存储线性表中的各个元素,这种方法称为线性表的顺序分配。若每个元素占L个存储单元,则第i个元素的存储地址为:
addr(a i)=addr(a1)+(i-1)×L 式中 addr(a1)为表首地址。
14、试分析例7-16命令序号查找程序,画出程序框图。
解:
15、线性链表与顺序分配的线性表有哪些不同?画出线性链表的结构图。
答:不同之处在于:线性表的数据元素在存储器内是任意存放的,既不要求连续,也不要求顺序。链表中,为了确定数据元素在线性表中的位置,需要有一个指针,以指明下一个元素在存储器中的位置。数据元素值和指针两者组成链表的一个结点。一个线性链表由一个起始指针FIRST和若干个结点组成,起始指针指向链表的第一个结点,链表的最后一个元素的指针为0,表示后面没有其他元素。线性链表的结构图如下:
16、试分析例解:
7-18链表的初始化程序,画出程序框图。
7、试分析例7-19链表插入子程序,画出程序框图。
:
1
解
18、什么是队列?试画出队列的结构图。
答:队列是一种先进先出(FIFO)的线性表。与日常生活中的排队一样,新元素必须从队尾加入,要取出的元素必须从排头取出,它是队列中最先进入的元素。每个队列需设立两个指针,分别指示队头和队尾的位置。指针RP 指出队列的最后一个元素的后一个空位置,它FP 指向队列最前面的一个元素,它表示要取出的元表示下一个要加入队列的元素的位置;指针
素的位置。队列的结构图如下:
19、什么是队列的假溢出?采用什么办法可以避免加假溢出?
答:当取出一个元素时,也应该把队列中其他元素向队头方向移一步。否则队列在存储器中的位置将逐渐向后移,以至无地方再插入新的元素,而这时队首元素的空位则越来越多,这种现象称为假溢出。避免假溢出的一个有效的方法是采用循环队列。循环队列是一种简单实的数据结构,它可以想象成圆环形结构的存储器阵列,队列中有一个队尾(存入)指针RP 的位置,然后把RP 加1。用和队头(读出)指针FP 。当加入一个元素时,把它存入RP 所指向由于是环形结构队列。故在RP 增加到超过队列的长度后,从初始位置开始存入(而RP 指向0)。当取出一个元素时,根据FP 取出队列的第一个元素,然后把FP 加1。同样,在FP 增加到超过队列的长度后,置FP 为初值为0。采用这种方法可有效地避免假溢出现象。
20、试分析例7-22环形缓冲器写入程序,画出程序框图。
解: