计算机组成原理实验运动码表,计算机组成原理

news/2024/12/21 19:08:32/

1.真值和机器数的关系是什么?

答:在计算机内部用二进制编码表示的数称为机器数,而机器数真正的值(即原来带有正负号的数)称为机器数的真值。

2.什么是编码?

答:用少量简单的基本符号,对大量复杂多样的信息进行一定规律的组合。基本符号的种类和组合规则是信息编码的两大要素。例如,用10个阿拉伯数字表示数值,电报码中用4位十进制数字表示汉字,等等,都是编码的典型例子。计算机内部处理的所有信息都是“数字化编码”了的信息。

3.什么是数字化编码”?

答:“数字化编码”就是对感觉媒体信息(如:数值、文字、图像、声音、视频等信息)进行定时采样,将现实世界中的连续信息转换为计算机中的离散的“样本”信息,然后对这些离散的“样本”信息进行二进制编码。

4.计算机内部为什么用二进制来编码所有信息?

答:主要有三个方面的原因:

(1)二进制系统只有两个基本符号:“0”和“1”。所以,它的基本符号少,易于用稳态电路实现;

(2)二进制的编码/计数/运算等的规则简单;

(3)二进制中的“0”和“1”与逻辑命题的“真”和“假”的对应关系简单

5.什么叫数值数据?

答:数值数据有确定的值,即在数轴上能找到其对应的点,可以比较其大小。确定一个数值数据的值有三个要素:进位计数制、定/浮点表示和数的编码表示。也就是说,给定一个数字序列,如果不说明这个数字序列是几进制数、小数点的位置在哪里、采用什么编码方式,那么这个数字序列的值是无法确定的。或者说,同一个数字序列可能有不同的值。

6.计算机内都用二进制表示信息,为什么还要引入八进制和十六进制?

答:计算机内部在进行信息的存储、传送和运算时,都是以二进制形式来表示信息的。但在屏幕上或书本上书写信息时,由于二进制信息位数多,阅读、记忆也不方便。而十六进制、八进制和二进制的对应关系简单。所以引入十六进制或八进制。在开发程序、调试程序、阅读机器内部代码时,人们经常使用八进制或十六进制来等价地表示二进制信息。

7.如何表示一个数值数据?计算机中的数值数据都是二进制数吗?

答:在计算机内部,数值数据的表示方法有两大类:

① 直接用二进制数表示

分为无符号数和有符号数,有符号数又分为定点数表示和浮点数表示。无符号数用来表示无符号整数(如:地址等信息);定点数用来表示整数;浮点数用来表示实数。

② 采用二进制编码的十进制数表示(Binary Coded Decimal Number,简称BCD码)BCD码的编码方案很多,但一般都采用8421码(也称为NBCD码)来表示。用来表示整数。

所以,计算机中的数值数据虽然都用二进制来编码表示,但不全是二进制数,也有用十进制数表示的。所以,后面一章有关指令类型中,就有对应的二进制加法指令和十进制加法指令。

8.为什么要引入无符号数表示?

答:一般在全部是正数运算且结果不出现负值的场合下,可以省略符号位,使用无符号数表示。例如在进行地址运算时可用无符号数。

9.在高级语言编程中所定义的unsigned型数据是怎么表示的?

答:unsigned型数据就是无符号数,不考虑符号位,直接用二进制对数值进行编码得到的就是无符号数。

10.为什么无符号整数结果会发生“溢出”? 什么叫无符号整数的“溢出”?

答:计算机的机器字长总是有限的,因而机器数的位数有限,所以可表示的数的个数有限。对于n位二进制数,只能表示2n个不同的数,因此有很多数用n位无法表示。

对于无符号定点整数来说,计算机运算过程中一般保留低n位,舍弃高位。这样,会产生两种结果:

① 剩下的低n位数不能正确表示运算结果。这种情况下,意味着运算的结果超出了计算机能表达的范围,有效数值进到了第n+1位,我们称此时发生了“溢出” 现象。

② 剩下的低n位数能正确表达计算结果,也即高位的舍去并不影响其运算结果。

“span对一个多于n位的数丢弃高位而保留低n位数”这样一种处理, 实际上等价于“将这个多于n位的数去除以2n,然后丢去商保留其余数”的操作。这种操作运算就是“模运算”。在一个模运算系统中,运算的结果最终都是丢弃高位,只截取低n位。所以,只要不是“溢出”,即:只要真正的值不会进到第n+1位,结果就是正确的。这是模运算系统的特点。

11.为什么现代计算机都用补码来表示整数?

答:补码表示定点整数时,和原码、反码相比,有以下四个好处:

(1)符号位可以和数值位一起参加运算

(2)可以用加法方便地实现减法运算

(3)零的表示唯一

(4)可以多表示一个最小负数

所以,现代计算机都用补码来表示定点整数。

12.n位二进制补码整数的模是多少?数的表示范围是多什么?

答:n位二进制补码整数的模是2n,表示只保留低n位,多于n位的高位部分取模后要被丢弃掉。这种形式的数的范围为-2(n-1) ~ +2(n-1) -1。

13.在高级语言编程中定义的shotr / int / long型数据是怎么表示的?

答:int型数据就是定点整数,现代计算机一般用补码表示。int型数据的位数与运行平台和编译器有关,一般是32位或16位。long型数据和short型数据也都是定点整数,用补码表示,只是位数不同,分别是长整型和短整型数。

14.定点整数在数轴上分布的点之间都是等距的吗?

答:是的。定点整数在数轴上的点总是在整数值上,即:[……,-5,-4,-3,-2,-1,0,1,2,3,4,5,……],相邻数据间隔总是1。

15.定点整数运算要考虑加保护位和舍入吗?

答:不需要。整数运算的结果还是整数,没有误差,无需考虑加保护位,也无需考虑舍入。但运算结果可能会“溢出”。

16.为什么要引入浮点数表示?

答:因为定点数不能表示实数,而且表数范围小。所以,要引入浮点数表示。

17.为什么浮点数的阶(指数)要用移码表示?

答:因为在浮点数的加减运算中,要进行对阶操作,需要比较两个阶的大小。移码表示的实质就是把阶加上一个偏置常数,使得所有数的阶码都是一个正整数,比较大小时,就只要按高位到低位顺序比较就行了,因而,引入移码可以简化阶的比较过程。

18.浮点数如何表示0?

答:用一种专门的位序列表示0,例如,IEEE754单精度浮点数中,用“0000 0000H”表示+0,用“8000 0000H”表示-0。当运算结果出现阶码过小时,计算机将该数近似表示为0。

19.现代计算机中采用什么标准来表示浮点数?

答:早期的计算机各自采用不同的浮点数表示格式,因而,在不同计算机之间进行数据交换时,就会发生数据不统一的问题。因而,提出专门制定了IEEE754标准用来规定计算机中的浮点数表示格式。所以,现代计算机中都采用IEEE754标准来表示浮点数。

20.如何判断一个浮点数是否是规格化数?

答:为了使浮点数中能尽量多地表示有效位数,一般要求运算结果用规格化数形式表示。规格化浮点数的尾数小数点后的第一位一定是个非零数。因此,对于原码编码的尾数来说,只要看尾数的第一位是否为1就行;对于补码表示的尾数,只要看符号位和尾数最高位是否相反。

21.浮点数表示的精度和数值范围取决于什么?

答:在浮点数总位数不变的情况下,阶码位数越多,则尾数位数越少。即:表数范围越大,则精度越差(数变稀疏)。

22.基数的大小对表数范围和精度有什么影响?

答:基数越大,则范围越大,但精度变低(数变稀疏)。

23.在高级语言编程中定义的float / double型数据是怎么表示的?

答:float型数据是用来表示实数的浮点数。现代计算机用IEEE754标准表示浮点数,其中32位单精度浮点数就是float型。64位双精度浮点数就是double型。

24.位数相同的定点数和浮点数中,可表示的浮点数个数比定点数个数多吗?

答:不是的。可表示的数据个数取决于编码所采用的位数。编码位数一定,则编码出来的数据个数就是一定的。n位编码只能表示2n个数,所以,对于相同位数的定点数和浮点数来说,可表示的数据个数应该一样多。(有时可能由于一个值可能有两个或多个编码对应,编码个数会有少量差异。但总体上是一样的。)

25.如何进行BCD码的编码?

答:每位十进制数的取值可以是0/1/2/…/9这十个数之一,因此,每一个十进制数位必须至少有4位二进制位来表示。而4位二进制位可以组合成16种状态,去掉10种状态后还有6种冗余状态,所以从16种状态中选取10种状态表示十进制数位0 ~ 9的方法很多,可以产生多种BCD码方案。大的方面可分为有权码和无权码两种。

有权码指表示每个十进制数位的四个二进制数位(称为基2码)都有一个确定的权。8421码是最常用的十进制有权码,ASCII码的数字编码采用的就是8421码;无权码指表示每个十进制数位的四个基2码没有确定的权。现代计算机中大多用8421有权码。

26.逻辑数据在计算机中如何表示?如何运算?

答:逻辑数据用来表示命题的“真”和“假”,分别用 “1”和“0”来表示。进行逻辑运算时,按位进行。

27.汉字的区位码、国标码和机内码有什么区别?

答:GB2312字符集由94行、94列组成,行号称为区号,列号称为位号,各占7位,共14位,区号在左、位号在右,称为汉字的区位码,它指出了该汉字在码表中的位置。

汉字的国标码是将区号、位号各加上32(即16进制的20H)后,再在前后各7位前加0。

汉字的内码需2个字节才能表示,可以在国标码的基础上产生汉字机内码。一般是将国标码两个字节的第一位置“1”后得到内码。

28.已知一个汉字的国标码为343AH,其区位码和机内码各是什么?

答:区位码是国标码的前后两个字节各减32(即:20H),所以得区位码为:343AH-2020H=141AH,所以区号为20,位号为26;机内码是国标码的两个字节的最前一位变为1,所以,机内码为B4BAH。

29.定点整数(用补码表示)运算时,如何判断结果溢出?

答:可以采用双符号位检测和单符号位检测两种判断方法。

1) 双符号位:采用“变形补码”进行补码运算和溢出检测。其判断规则为:“当结果的两个符号位不同时,发生溢出”。

2)单符号位:异号数相加不会溢出;对于同号数相加,则有两种判断规则:

规则1:“若结果的符号与两个加数的符号不同,则发生溢出。”

规则2:“若最高位的进位和次高位的进位不同,则发生溢出。

30.什么是浮点数的溢出?什么情况下发生上溢?什么情况下发生下溢?

答:浮点数的运算结果可能出现以下几种情况:

1)阶码上溢:当一个正指数超过了最大允许值,此时,浮点数发生上溢(即:向∞方向溢出)。如果结果是正数,则发生正上溢(有的机器把值置为+∞);如果是负数,则发生负上溢(有的机器把值置为-∞)。这种情况为软件故障,通常要引入溢出故障处理程序来处理。

2)阶码下溢:当一个负指数比最小允许值还小,此时,浮点数发生下溢。一般机器把下溢时的值置为0(+0或-0)。不发生溢出故障。

3)尾数溢出:当尾数最高有效位有进位时,发生尾数溢出。此时,进行“右规”操作:尾数右移一位,阶码加1,直到尾数不溢出为止。此时,只要阶码不发生上溢,则浮点数不会溢出。

4)非规格化尾数:当数值部分高位出现0时,尾数为非规格化形式。此时,进行“左规”操作:尾数左移一位,阶码减1,直到尾数为规格化形式为止。

31.为什么浮点数运算中要增加保护位?

答:为了使数据有效位在右移时最大限度地保证不丢失,一般在运算中间值后面增加若干数据位,这些位用来保存右移后的有效数据。增设保护位后,能保证运行的中间结果的有效位数,但最终必须将结果的保护位去掉,以得到规定格式的浮点数,此时要考虑舍入。

32.浮点数如何进行舍入?

答:舍入方法选择的原则是:(1)尽量使误差范围对称,使得平均误差为0,即:有舍有入,以防误差积累。(2)方法要简单,以加快速度。

IEEE754 有四种舍入方式:(1)就近舍入:舍入为最近可表示的数,若结果值正好落在两个可表示数的中间,则一般选择舍入结果为偶数。(2)正向舍入:朝+∞方向舍入,即:取右边的那个数。(3) 负向舍入:朝-∞方向舍入,即:取左边的那个数。(4)截去:朝0方向舍入。即:取绝对值较小的那个数。

33.无符号加法器如何实现?

答:计算机中,最基本的加法器是无符号加法器。根据进位方式的不同,有两种不同的实现方式:串行和并行。

(1)串行进位加法器(行波进位加法器):通过n个全加器按照串行方式连起来实现

(2)并行进位加法器(先行进位加法器):通过引入进位生成函数和进位传递函数,使得进位之间相互独立,并行产生。也称为快速加法器。

34.补码加法器如何实现?

答:在补码系统内,两个n位数做补码加法的原则是:两个n位数的补码相加,其结果中最高位的进位丢掉(模运算系统)。所以可用一个n位无符号加法器生成各位的和。

但是,最终的结果是否正确,取决于结果是否溢出,只要不溢出,结果一定是正确的。因此,补码加法器只要在无符号加法器的基础上再增加“溢出判断电路”即可。

35.在补码加法器中,如何实现减法运算?

答:补码减法的规则是:求两个数的差的补码,可用第一个数的补码加上另一数负数的补码得到。由此可见,减法运算可在加法器中运行。只要在加法器的一个输入端输入减数的负数的补码。求一个数的负数的补码电路称为“负数求补电路”。可以通过“各位取反、末尾加1”来实现“负数求补电路”。

36.现代计算机中是否要考虑原码加/减运算?如何实现?

答:因为现代计算机中浮点数采用IEEE754标准,所以在进行两个浮点数加减运算时,必须考虑原码的加减运算。因为,IEEE754规定浮点数的尾数都用原码表示。

原码的加减运算可以有以下两种方式实现:

(1)转换为补码后,用补码加减法实现,结果再转换为原码

(2)直接用原码加减运算,符号和数值部分分开进行。其步骤如下:

–比较两个操作数的符号

•加法--实行 “同号求和,异号求差”

•减法--实行 “异号求和,同号求差”

–求和:数值位相加

•若最高位产生进位,则溢出

•若最高位无进位,则和的符号位为被加(减)数的符号

–求差:被加(减)数的数值位加上加(减)数数值位的补码

•若最高位有进位,则结果为正,说明数值位正确,差的符号位为被加(减)数的符号;

•若最高位无进位,则结果为负,得到的数值位为补码形式,故需对结果求补,差的符号位与被加(减)数的符号位相反

37.加法器的运算速度取决于什么?

答:在门电路延迟一定的情况下,加法器的速度主要取决于进位方式,并行进位方式比串行进位方式的速度快。

38.计算机内部如何实现填充(扩展)操作?

答:在计算机内部,移位操作在移位器中进行,移位器位数固定,所以,移位前后数的位数不变。左移一位,数值扩大一倍,相当于乘2操作;右移一位,数值缩小一半,相当于除2操作。

移位操作分逻辑移位、算术移位和循环移位三种。

逻辑移位对无符号数进行,移位规则为:

左移时,高位移出,低位补0

右移时,低位移出,高位补0

算术移位是对带符号数进行的,移位时符号位不变,只对数值部分移位。移位规则为:

① 原码

左移:高位移出,末位补0。移出非零时,发生溢出。

右移:高位补0,低位移出。移出时进行舍入操作。

② 补码

左移:高位移出,末位补0。移出非符时,发生溢出。

右移:高位补符,低位移出。移出时进行舍入操作。

循环移位对无符号数进行,移位时把高(低)位移出的一位送到低(高)位即可。

39.计算机内部如何实现填充(扩展)操作?

答:在计算机内部,有时需要将一个取来的短数扩展为一个长数,此时要进行填充(扩展)处理。对于无符号整数,只要在高位补0,进行“零扩展”。

对于有符号数,则可能有两种情况:

1) 对于定点整数,在符号位后的数值高位进行。

① 原码:符号位不变,数值部分高位补0

② 补码:高位直接补符,称为“符号扩展”方式

2)对于定点小数表示的浮点数的尾数,则在低位补0即可。

40.在计算机中,乘法和除法运算如何实现?

答:乘法和除法运算是通过加/减运算和左/右移位运算来实现的。所以只要用加法器和移位寄存器在CPU的控制下就可以实现。

此处为音频播放区域,不可重复添加


http://www.ppmy.cn/news/690044.html

相关文章

第六章——计算机的运算方法

6.3 定点运算 包括:移位,加减乘除… 6.3.1 移位运算 1.移位的意义(移位和加法结合,实现乘除运算) 举例: 15.0 1500.0 1500相当于15相对于小数点左移了两位(小数点是不动的,十进制数…

计算机组成原理——计算机的运算方法

试题 1 正确 得分 1.00/1.00 分 未标记标记试题 试题正文 一个16位无符号二进制数的表示范围是() A. 0~65535 B. -32768~32768 C.-32768~32767 D. 0~65536 反馈 您的答案是正确的。 正确答案是: 0~65535 试题 2 正确 得分 1.00/1.00 分 未标记…

bah 带你入门

我们经常会在cmd上写一些命令,而这些命令其实也可以在bash中执行,bash增加了更多的语法,让我们可以写出比较简单的处理流程 bash中的分支结构 条件 if express; then fi express: 1、[] while while xxx; do express done express可以是…

C语言重点

1. 位、字节、字 位,最小的存储单位,可以存储0或者1 字节,常用的计算机存储单位,一个字节等于8位(我是你8,哈哈) 字,设计计算机时给定的自然存储单位,对于8位的微型计算机(如,最初的苹果机),一个字长只有8位。从那以后,个人计算机字长增至16位、32位,直到目前的…

LinuxC——指针

指针在C语言中的应用是非常多的,而且也是很重要的。 一、什么是指针 指针是一个值为内存地址的变量。就像char类型变量的值为字符,int类型变量的值为整数。 在使用指针的时候,一定会用到这两个符号‘*’和 ‘&’,下面就首先…

HackMyvm(一)BAH持续更新

HackMyVM:第一更 BAH 文章目录 环境准备一、信息收集二、利用步骤三、权限提升 环境准备 环境地址:https://hackmyvm.eu/machines/machine.php?vmBah 一、信息收集 首先用Nmap扫描一下网段 nmap -sP 192.168.200.1-255 #扫网段我这里用的是校园网&a…

moya

https://juejin.im/post/5ac2cf34f265da23a1421483 https://juejin.im/post/5a69e9f9f265da3e290c6782 转载于:https://www.cnblogs.com/feng9exe/p/10964762.html

MOEA\D

1,Erpim的博客:多目标优化_学习笔记(三)MOEA/D https://blog.csdn.net/qq_35414569/article/details/79655400 2,GryffindorHermione博客:基于分解的多目标进化算法(MOEA/D) https://blog.csdn.net/sina…