c语言移位运算符%3e%3e,第3章习题答案

袁春风教的计算机组成原理与系统结构答案!

习题

1. 给出以下概念的解释说明。

算术逻辑部件ALU(Arithmetic and Logic Unit) 先行进位CLA(Carry Lookahead) 零标志ZF(Zero Flag)

进位/借位标志CF(Carry Flag) 布斯乘法(Booth Multiply) 对阶(Align Exponent) 保护位(Guard Bit) 粘位(Sticky Bit)

行波进位加法器(ripple carry adder)

溢出标志OF(Overflow Flag) 符号标志NF(Negative Flag) 阵列乘法器(Array Multiplier) 舍入位(Round Bit) 执行部件(Execution Unit)

通用寄存器组GRS(General Register Set)

成组先行进位BCLA(Block Carry Lookahead)

舍入(Rounding)

功能部件(Function Unit) Q乘商寄存器(Q Register) 2.简单回答下列问题。

(1)为何在高级语言和机器语言中都要提供“按位运算”?为何高级语言需要提供逻辑运算?按位运算和逻

辑运算的差别是什么?

(2)如何进行逻辑移位和算术移位?它们各用于哪种类型的数据? (3)移位运算和乘除运算具有什么关系?

(4)高级语言中的运算和机器语言(即指令)中的运算是什么关系?假定某一个高级语言源程序P中有乘、

除运算,但机器M中不提供乘、除运算指令,则程序P能否在机器M上运行?为什么? (5)为什么用一个ALU和移位器就能实现定点数和浮点数的所有加、减、乘、除运算? (6)影响加/减运算速度的关键问题是什么?可采取什么改进措施?

3.考虑以下C语言程序代码:

int func1(unsigned word) { }

int func2(unsigned word) { }

假设在一个32位机器上执行这些函数,该机器使用二进制补码表示表示带符号整数。无符号数采用逻辑移位,带符号整数采用算术移位。请填写下表,并说明函数func1和func2的功能。

机器数

机器数

机器数

Return ( (int) word <<24 ) >> 24; Return (int) (( word <<24) >> 24);