计算机考研 | 2017年 | 计算机组成原理真题

news2024/11/23 21:47:34

文章目录

  • 【计算机组成原理2017年真题43题-13分】
    • 【第一步:信息提取】
    • 【第二步:具体解答】
  • 【计算机组成原理2017年真题44题-10分】
    • 【第一步:信息提取】
    • 【第二步:具体解答】

【计算机组成原理2017年真题43题-13分】

在这里插入图片描述
(1)当n=0时, f 1 f_1 f1会出现死循环,为什么?若将 f 1 f_1 f1中的变量i和n都定义为int型,则fl是否还会出现死循环?为什么?

(2) f 1 ( 23 ) f_1(23) f1(23) f 2 ( 23 ) f_2(23) f2(23)的返回值是否相等?机器数各是什么(用十六进制表示)?

(3) f 1 ( 24 ) f_1(24) f1(24) f 2 ( 24 ) f_2(24) f2(24)的返回值分别为33554431和33554432.0,为什么不相等?

(4) f ( 31 ) = 2 32 − 1 f(31)=2^{32}-1 f(31)=2321,而 f 1 ( 31 ) f_1(31) f1(31)的返回值却为 -1,为什么?若使 f 1 ( n ) f_1(n) f1(n) 的返回值与 f ( n ) f(n) f(n)相等,则最大的n是多少?

(5) f 2 ( 127 ) f_2(127) f2(127)的机器数为7F80 0000H,对应的值是什么?若使 f 2 ( n ) f_2(n) f2(n)的结果不溢出,则最大的n是多少?若使 f 2 ( n ) f_2(n) f2(n)的结果精确(无舍入),则最大的n是多少?

【第一步:信息提取】

unsigned:0000 0000H~FFFF FFFFH,是无符号数;int 是有符号数

IEEE 754单精度标准:1位符号位;8位阶乘;23位位数,隐藏了1位

【第二步:具体解答】

第一小题:

(1)当n=0时, f 1 f_1 f1会出现死循环,为什么?

由于i和n是unsigned型的,故"i<=n-1"是无符号数比较,n=0时,n-1的机器数为全1,值是 2 32 − 1 2^{32}-1 2321,为unsigned 型可表示的最大数,条件"i<=n-1"永真,因此出现死循环。

(2)若将 f 1 f_1 f1中的变量i和n都定义为int型,则 f 1 f_1 f1是否还会出现死循环?为什么?

若i和n改为int类型,则不会出现死循环。

因为"i<=n-1"是带符号整数比较, n=0时,n-1的值是-1,当i=0时条件“i<=n-1”不成立,此时退出for循环。

第二小题:

(1) f 1 ( 23 ) f_1(23) f1(23) f 2 ( 23 ) f_2(23) f2(23)的返回值是否相等?

f 1 ( 23 ) f_1(23) f1(23) f 2 ( 23 ) f_2(23) f2(23) 的返回值相等。

f ( 23 ) = 2 23 + 1 − 1 = 2 24 − 1 f(23)=2^{23+1}-1=2^{24}-1 f(23)=223+11=2241,它的二进制形式是24个1,int占32位,没有溢出。

float有1个符号位,8个指数位,23个底数位,23个底数位可以表示24位的底数。所以两者返回值相等

(2)机器数各是什么(用十六进制表示)?

f1(23)的机器数是00FF FFFFH。

f2(23)的机器数是 4B7F FFFFH。

显而易见前者是24个1,即 ( 000000011111111111111111111111 ) 2 (000 0000 111 1111 1111 1111 1111 1111)_2 (000000011111111111111111111111)2

后者符号位是0,即 ( 01001011011111111111111111111111 ) 2 (0100 1011 0111 1111 1111 1111 1111 1111)_2 (01001011011111111111111111111111)2 指数位为 23 + 127 = ( 150 ) 10 = ( 10010110 ) 2 23+127=(150)_{10}=(10010110)_2 23+127=(150)10=(10010110)2,底数位是 ( 11111111111111111111111 ) 2 (111 1111 1111 1111 1111 1111)_2 (11111111111111111111111)2

注:IEEE 754单精度标准: 符号位( 1. 底数) ∗ 2 指数 符号位 (1.底数)* 2^{指数} 符号位(1.底数)2指数

指数=实际乘+127,即实际乘=指数-127

第三小题:

(1) f 1 ( 24 ) f_1(24) f1(24) f 2 ( 24 ) f_2(24) f2(24)的返回值分别为33554431和33554432.0,为什么不相等?

当n=24时,f(24)=1 1111 1111 1111 1111 1111 1111 B,而float型数只有24位有效位,舍入后数值增大,所以f2(24)比 f1(24)大 1。

第四小题:

(1) f ( 31 ) = 2 32 − 1 f(31)=2^{32}-1 f(31)=2321,而 f 1 ( 31 ) f_1(31) f1(31)的返回值却为 -1,为什么?

显然f(31)已超出了int型数据的表示范围,用 f 1 ( 31 ) f_1(31) f1(31)实现时得到的机器数为32个1,作为int型数解释时其值为-1,即f1(31)的返回值为-1。

(2)若使 f 1 ( n ) f_1(n) f1(n) 的返回值与 f ( n ) f(n) f(n)相等,则最大的n是多少?

因为int型最大可表示数是0后面加31个1,故使 f 1 ( n ) f_1(n) f1(n)的返回值与f(n)相等的最大n值是30。

第五小题:

(1) f 2 ( 127 ) f_2(127) f2(127)的机器数为7F80 0000H,对应的值是什么?

IEEE 754标准用"阶码全1、尾数全0"表示无穷大。f2返回值为float型,机器数7F800000H 对应的值是+∞

(2)若使 f 2 ( n ) f_2(n) f2(n)的结果不溢出,则最大的n是多少?

当n= 126时, f ( 126 ) = 2 127 − 1 = 1.1 … 1 × 2 126 f(126)=2^{127}-1= 1.1…1×2^{126} f(126)=21271=1.11×2126,对应阶码为 127 + 126 = 253 127+126=253 127126=253,尾数部分舍入后阶码加1,最终阶码为254,是IEEE 754单精度格式表示的最大阶码。故使2结果不溢出的最大n值为126。

(3)若使 f 2 ( n ) f_2(n) f2(n)的结果精确(无舍入),则最大的n是多少?

当n=23时,f(23)为24位1,float型数有24位有效位,所以不需舍入,结果精确。故使f2获得精确结果的最大n值为23。

【计算机组成原理2017年真题44题-10分】

在这里插入图片描述

(1)计算机M是RISC还是CISC?为什么?

(2)f1的机器指令代码共占多少字节?要求给出计算过程。

(3)第20条指令cmp通过i减n-1实现对i和n-1的比较。执行fl(0)过程中当i=0时,cmp指令执行后,进/借位标志CF的内容是什么?要求给出计算过程。

(4)第23条指令sh通过左移操作实现了 p o w e r ∗ 2 power * 2 power2 运算,在2中能否也用shl指令实现 p o w e r ∗ 2 power * 2 power2 ?为什么?

【第一步:信息提取】

  1. 机器指令长短不一——采用的是CISC
  2. 字节编址
  3. 从开始到结束 0040 107FH - 0040 1020H + 1 = 0000 0060H

【第二步:具体解答】

第一小题:

(1)计算机M是RISC还是CISC?为什么?

M为CISC。

M的指令长短不一,不符合RISC指令系统特点。

第二小题:

(1)f1的机器指令代码共占多少字节?要求给出计算过程。

如信息提取中③, ( 60 ) 16 = ( 96 ) 10 (60)_{16}=(96)_{10} (60)16=(96)10 ,所以96个字节

第三小题:

(1)第20条指令cmp通过i减n-1实现对i和n-1的比较。执行f1(0)过程中当i=0时,cmp指令执行后,进/借位标志CF的内容是什么?要求给出计算过程。

CF=1。

cmp指令实现i与n-1的比较功能,进行的是减法运算。

在执行 f 1 ( 0 ) f_1(0) f1(0)过程中,n=0,当i=0时,i= 0000 0000H,且n - 1 = FFFF FFFFH。

因此,当执行第20条指令时,在补码加/减运算器中执行“0减FFFF FFFFH"的操作,即0000 0000H + 0000 0000H + 1=00000001H

此时,进位输出C=0,减法运算时的借位标志CF=C异或1。

第四小题:

(1)第23条指令sh通过左移操作实现了 p o w e r ∗ 2 power * 2 power2 运算,在2中能否也用shl指令实现 p o w e r ∗ 2 power * 2 power2 ?为什么?

f2中不能用shl指令实现 power * 2。

因为shl指令用来将一个整数的所有有效数位作为一个整体左移;而2中的变量power是float 型,其机器数中不包含最高有效数位,但包含了阶码部分,将其作为一个整体左移时并不能实现“乘2”的功能,因而f2中不能用shl指令实现power*2。

浮点数运算比整型运算要复杂,耗时也较长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1068477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

南美巴西市场最全分析开发攻略,收藏一篇就够了

巴西位于南美洲东部&#xff0c;是南美洲资源最丰富&#xff0c;经济活力和经济实力最强的国家。巴西作为拉丁美洲的出口大国&#xff0c;一直是一个比较有潜力的市场&#xff0c;亦是我国外贸公司和独立外贸人集群的地方。中国长期是巴西主要的合作伙伴&#xff0c;2022年占巴…

探究IO多路复用select/poll/epoll的实现原理及优缺点

IO多路复用 多路指多个文件描述符&#xff0c;复用指使用一个线程。 IO多路复用通俗的理解就是一个线程监视多个文件描述符****&#xff0c;一旦某个文件描述符就绪&#xff0c;就通知应用程序对其进行读写操作。 select select会将三个fd_set文件描述符集合(bitMap),即读集…

java 汽车修理厂修配厂-接单-处理收款 日常经营管理系统 汽车修理信息管理

实现修配厂一体化管理&#xff0c;从业务各个环节整体管理&#xff0c;包括接待&#xff0c;维修&#xff0c;采购&#xff0c;质检&#xff0c;交车&#xff0c;收款等业务操作环节&#xff0c;全方位&#xff0c;闭环管理&#xff0c;精细化管理。充费利用信息技术资源&#…

coreldraw和ai哪个好用?有哪些区别

CorelDRAW和Illustrator是两款常被比较的矢量绘图软件&#xff0c;它们在功能上各具特色&#xff0c;在绘图领域中都有一席之地。大多数效果都可以在这两款软件上完成&#xff0c;因此它们在功能上差异不大。 然而&#xff0c;就操作而言&#xff0c;我必须承认CorelDRAW更加便…

蓝牙资讯|三星发布Galaxy SmartTag 2,苹果Find My引领防丢市场

三星发布新品 —— Galaxy SmartTag 2 防丢器&#xff0c;该产品售价 29.99 美元。外观方面&#xff0c;Galaxy SmartTag 2 采用了全新的椭圆设计取代上代 SmartTag 的菱形设计&#xff0c;钥匙孔也比上代更大&#xff0c;并升级采用金属圆环以防止磨损&#xff0c;新品提供黑色…

Kafka在企业级应用中的实践

前言 前面说了很多Kafka的性能优点&#xff0c;有些童鞋要说了&#xff0c;这Kafka在企业开发或者企业级应用中要怎么用呢&#xff1f;今天咱们就来简单探究一下。 1、 使用 Kafka 进行消息的异步处理 Kafka 提供了一个可靠的消息传递机制&#xff0c;使得企业能够将不同组件…

[UUCTF 2022 新生赛]ezpop - 反序列化+字符串逃逸【***】

[UUCTF 2022 新生赛]ezpop 一、解题过程二、其他WP三、总结反思 一、解题过程 题目代码&#xff1a; <?php //flag in flag.php error_reporting(0); class UUCTF{public $name,$key,$basedata,$ob;function __construct($str){$this->name$str;}function __wakeup(){i…

Vue Router(二)

目录 一、嵌套路由 1、路由定义 2、代码例子 3、重定向 二、懒加载 1、缘由 2、代码例子 三、导航守卫 1、全局前置守卫 2、全局后置守卫 3、meta元信息 四、生命周期 1、解释 2、执行顺序 3、例子 五、keep-alive组件缓存&#xff08;保活&#xff09; 1、介…

AT2659S——L1频段卫星导航射频前端低噪声放大器芯片

AT2659S芯片采用2.9 mm 2.8mm 1.1 mm的6 pin SOT23-6封装。 应用领域&#xff1a; 导航天线 集成导航功能的手机 自动导航 定位功能移动设备 个人导航仪 笔记本/PAD AT2659S 是一款具有低功耗、高增益、低噪声系数的低噪声放大器&#xff08;LNA&#xff09;芯片&#x…

32、Flink table api和SQL 之用户自定义 Sources Sinks实现及详细示例

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

虚拟机Ubuntu18.04安装对应ROS版本详细教程!(含错误提示解决)

参考链接&#xff1a; Ubuntu18.04安装Ros(最新最详细亲测)_向日葵骑士Faraday的博客-CSDN博客 1.4 ROS的安装与配置_哔哩哔哩_bilibili ROS官网&#xff1a;http://wiki.ros.org/melodic/Installation/Ubuntu 一、检查cmake 安装ROS时会自动安装旧版的Cmake3.10.2。所以在…

Thingsboard二次开发---5.在Thingsboard中增加解决方案管理功能

前言 在使用Thingsboard的过程中发现TB虽然非常灵活&#xff0c;但实际的最终用户更希望是针对特定场景的成熟解决方案&#xff0c;页面都做好&#xff0c;不需要再进行配置&#xff0c;所以在原来的基础上增加了解决方案的功能&#xff0c;此方案比较适合给用户提供SaaS化的解…

【Hugging Face】如何从hub中下载文件

huggingface_hub库提供了从存储在Hub上的仓库中下载文件的功能。您可以独立使用这些函数或将它们集成到您自己的库中&#xff0c;使您的用户更方便地与Hub交互。本指南将向您展示如何&#xff1a; 下载并缓存单个文件。下载并缓存整个代码库。将文件下载到本地文件夹。 下载单…

语义分割,实例分割,全景分割梳理

语义分割&#xff08;semantic segmentation&#xff09; 实例分割&#xff08;instance segmentation&#xff09; 全景分割&#xff08;Panoptic Segmentation&#xff09; 下面基于《Panoptic Segmentation 》这篇论文进行这几个概念的梳理 论文链接&#xff1a;https:/…

基于安卓android微信小程序的垃圾废品回收类软件

运行环境 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&a…

软件测试的价值

测试人员可以参与到软件的全生命周期中&#xff0c;一切软件质量相关的活动。具体来说主要有&#xff1a; 1、需求评审&#xff0c;帮助产品梳理业务逻辑 测试人员对产品功能有丰富的业务测试经验&#xff0c;有时会比产品还要熟悉平台的整体业务逻辑&#xff0c;所以需求评审…

【PG】Linux系统部署PostgreSQL单机数据库

安装方式 1 安装包方式 &#xff08;Packages and Installers&#xff09; 支持的操作系统包括 liunxMacosWindowsBSDSolaris 2 源码安装 &#xff08;Source code&#xff09; 下载源码包 通过下载地址PostgreSQL: File Browser 可以看到有各个版本的源码目录 选择13.1…

WPF向Avalonia迁移(二、一些可能使用到的库)

可能使用到的一些库 1. UI库 开源项目&#xff1a;https://github.com/irihitech/Semi.Avalonia 如果想引用他的DataGrid样式还需要添加Semi.Avalonia.DataGrid 2. 图表库 LiveChartsCore.SkiaSharpView.Avalonia 3.SVG库 开源项目&#xff1a;https://github.com/wieslaw…

prometheus使用数据源的timestamp而非server的timestamp

关于timestamp指标的解释 prometheus中的指标timestamp有两个&#xff1a; prometheus拉取时刻的timestamp&#xff0c;即服务端的timestamp&#xff1a;time.Now()&#xff1b;exporter的/metrics接口&#xff0c;除了返回metric&#xff0c;value&#xff0c;还返回timesta…

chromium线程模型(1)-普通线程实现(ui和io线程)

通过chromium 官方文档&#xff0c;线程和任务一节我们可以知道 &#xff0c;chromium有两类线程&#xff0c;一类是普通线程&#xff0c;最典型的就是io线程和ui线程。 另一类是 线程池线程。 今天我们先分析普通线程的实现&#xff0c;下一篇文章分析线程池的实现。&#xff…