计算机组成基础
习题详解
(初稿)
孙德文
上海交通大学软件学院
2009.3
第1章 计算机系统概论
1.1 数字计算机和模拟计算机的区别?
解:电子数字计算机的特点是数据由离散量来表示,是对离散变量进行处理和运算的解算装置。
电子模拟计算机的特点是数据由连续量来表示,是对连续变量进行运算的解算装置。在电子模拟计算机中,变量为连续变化的直流电压、电流或电荷。
1.2 说明冯诺依曼计算机的设计思想?写出冯诺依曼计算机的主要组成部分?
解:冯诺依曼计算机的设计思想是:
提出了“存储程序”的概念,程序设计者按计算要求编制好程序,将程序和运行程序中所用的数据以二进制代码的形式存入计算机的存储器中,由计算机自动执行程序。使电子计算机有了通用性,只要能写出正确的指令,计算机执行时就无须人工干预。
冯诺依曼计算机的主要组成部分是:
运算器、控制器、存储器、输入设备和输出设备。其中运算器和控制器合称“中央处理机”(或称为CPU,Central Processing Unit),CPU与存储器(内存储器)合称为“主机”,而输入设备和输出设备合称为“外部设备”。
1.3 描述计算机的发展过程及应用范围?
解:电子数字计算机从1946年第一台ENIAC机至今可分为4代:
第一代—— 电子管计算机;
第二代——晶体管计算机
第三代——集成电路计算机
第四代——大规模和超大规模集成电路计算机
应用范围
1.4 计算机软件的组成?并举例说明。
解:计算机的主要应用领域包括:数值计算、数据处理、计算机控制、计算机辅助设计/计算机辅助制造和人工智能等。
1.5 说明计算机系统的层次结构及各层次结构的特点?
解:计算机系统的层次结构共分8级,从L0~L7,其中:
L0为硬联逻辑,实现微指令的控制时序,是计算机系统硬件的内核;
L1为微程序控制,根据机器指令配备一套微指令,给出微操作控制信号;
L2为机器语言级计算机,该级的机器语言就是该计算机的指令系统;
L3为操作系统,为用户提供一个操作环境;
L4为汇编语言级计算机,该级的机器语言是汇编语言,由相应级的计算机进行解释、执行;
L5为高级语言类计算机,该级的机器语言是各种高级语言,该级计算机基本上脱离了物理计算机,供程序员使用;
L6 为应用语言计算机,该级的机器语言是面向非计算机专业人员直接使用的应用语言;
L7为应用系统分析和设计,是系统总体分析级,用以建立数学模型和算法,确定系统配置。
第2章 运算基础----数值的机器级表示
2.1 写出下列十进制数的8位二进制补码表示
(1) 54 (2) 37
(3) 111 (4) 253
(5) 0.1 (6) 0.63
(7) 0.34 (8) 0.21
解:
(1) +54 = B (32+16+6)
(2) +37 = B (32+5)
(3) +111 = B (64+32+15)
(4) +253 =0 B (255-2) 超过8位补码范围
(5) +0.1 = 0. (0.1 = 12.8/128 = 13/128 )
(6) +0.63 = 0.B (0.63=80.6/128=81 /128)
(7) +0.34 = 0. (0.34 = 43.52/128 =44/ 128)
(8) +0.21 = 0. (0.21 = 26.88 / 128= 27 /128)
2.2 转换下列二进制数为十进制数
(1) (2)
(3) 0. (4) 0.
(5) . (6)
解:
(1) = 189 (255-64-2)
(2) = 137 (128+9)
(3) 0. = 95 / 128 =0. ( (127-32)/ 128 )
(4) 0. = 13 / 64 = 0.
(5) . = 153 +51/64 = 153. ( 153 = 128+16+9 ,
51/64 = (63-12)/64 )
(6) = 455 (455 = 511-32-16-8)
2.3 写出下列带符号数的原码、反码、补码和移码表示(用8位二进制代码表示)
(1) +112 (2) 0.625
(3) –124 (4) –0.375
(5) +197 (6)+0.8125
(7) –6 (8) -0.3125
(9) —127 (10) —1
解:
(1) +112 = 127-15
[ +112 ]原 = B
[ +112 ]反 = B
[ +112 ]补 = B
[ +112 ]移 = B
(2) 0.625 = 0.B
[ 0.625 ]原 =[ 0.625 ]反=[ 0.625 ]补 =0.B
小数无移码
(3) –124 =-(127-3) =-B
[-124 ]原 = B
[-124 ]反 = B
[-124 ]补 = B
[-124 ]移 = B
(4) –0.375 =-48/128 =-0.B
[-0.375 ]原=1.B
[-0.375 ]反=1.B
[-0.375 ]补=1.B
小数无移码
(5) +197
超过8位范围。无法表示。
(6) +0.8125 =104/128 =0.B
[+0.8125]原=[+0.8125]反=[+0.8125]补= 0.B
小数无移码
(7) –6
[-6 ]原 = B
[-6 ]反 = B
[-6 ]补 = B
[-6 ]移 = B
(8) -0.3125 = -40/128 =-0.
[-0.3125 ]原=1. B
[-0.3125 ]反=1.B
[-0.3125 ]补=1.B
小数无移码
(9) —127 = -
[—127]原 = B
[—127 ]反 = B
[—127 ]补 = B
[—127 ]移 = B
(10) —1
[—1]原 = B
[—1]反 = B
[—1 ]补 = B
[—1 ]移 = B
2.4 给出以下机器数,求其真值(用二进制和十进制数表示)
(1) [x]原= (2) [x]补=.
(3) [x]补= (4) [x]原=
(5) [x]移= (6) [x]移=
解:
(1) X =+B=+(32+7) =+39
(2) [x]补=B [x]原=B
X=-B =-( 64+16+3)=-83
(3) X = +B=64+6 =+70
(4) [X]原=B
X= -B =-(32+13) =-45
(5) [x]移=
[x]补=
X=-=-58
(6) [x]移=
[x]补=
X==83
2.5 已知生成多项式为x4+x+1 ,有效信息为,求CRC校验码。
解:
信息——数据字块M = (共8位)
除数代码为G = 10011 即生成多项式G(X)= x4+x+1
求循环冗余校验码
二进制除法过程如下:
10011 0
10011
11001
10011
10101