「分析」:在设计多位的加法器时,为了加快运算速度而采用了快速进位电路,即对加法器的每一位都生成两个信号:进位生成信号g和进位传播信号p,其中g和p定义为:gi=xiyi,p=xi+yi.
「答案」:B
(2004年)10.多位二进制加法器中每一位的进位传播信号 p 为( )。
A.xi+yi
B.xiyi C.xi+yi+ci D.xiyici
「分析」:在设计多位的加法器时,为了加快运算速度而采用了快速进位电路,即对加法器的每一位都生成两个信号:进位生成信号g和进位传播信号p其中g和p定义为:gi=xiyi,p=xi+yi.
「答案」:A
(2005年)4.若采用双符号位补码运算,运算结果的符号位为01,则( )。
A.产生了负溢出(下溢) B.产生了正溢出(上溢)
C.结果正确,为正数 D.结果正确,为负数
「分析」:采用双符号位时,第一符号位表示最终结果的符号,第二符号位表示运算结果是否溢出。当第二位和第一位符号相同,则未溢出;不同,则溢出。若发生正溢出,则双符号位为01,若发生负溢出,则双符号位为10.
「答案」:B
可见溢出的判断是重要考点,同学还要注意其他两种判断溢出的方法:
(1)两正数相加结果为负或两负数相加结果为正就说明产生了溢出
(2)最高位进位和次高位进位不同则发生了溢出
另外要注意快速进位加法器的进位生成信号g和进位传播信号p其中g和p定义为:gi=xiyi ,p=xi+yi.第i位的进位: .
五、定点数的乘除法:
(2001年)请用补码一位乘中的 Booth 算法计算 x?y=?x=0101,y=-0101,列出计算过程。
「分析」:补码一位乘法中的Booth算法是一种对带符号数进行乘法运算的十分有效的处理方法,采用相加和相减的操作计算补码数据的乘积。做法是从最低位开始,比较相临的数位,相等时不加不减,只进行右移位操作;不相等(01)时加乘数,不相等(10时)相减乘数,再右移位;直到所有位均处理完毕
「答案」:
x=0101,x补=0101, -x补=1011,y=-0101,y补=1011
循环 步骤 乘积(R0 R1 P)
0 初始值 0000 1011 0
1 减0101 1011 1011 0
右移1位 1101 1101 1
2 无操作 1101 1101 1
右移1位 1110 1110 1
3 加0101 0011 1110 1
右移1位 0001 1111 0
4 减0101 1100 1111 0
右移1位 1110 0111 1
所以结果为[x?y]补=11101111,真值为-00011001,十进制值为-25.
(2002年)已知x=0011, y=-0101,试用原码一位乘法求xy=?请给出规范的运算步骤,求出乘积。
「分析」:原码一位乘法中,符号位与数值位是分开进行计算的。运算结果的数值部分是乘数与被乘数数值位的乘积,符号是乘数与被乘数符号位的异或。原码一位乘法的每一次循环的操作是最低位为1,加被乘数的绝对值后右移1位;最低位为0,加0后右移1位。几位乘法就循环几次。
「答案」:
x原=00011,y原=10101,|x|=0011, |y|=0101结果的符号位1 0=1
循环 步骤 乘积(R0 R1)
0 初始值 0000 0101
1 加0011 0011 0101
右移1位 0001 1010
2 加0 0001 1010
右移1位 0000 1101
3 加0011 0011 1101
右移1位 0001 1110
4 加0 0001 1110
右移1位 0000 1111
所以结果为-00001111
(200