计算机组成原理二进制的题

img


阿里嘎多,我水
再水,我水,再水
'/-_:$#~#*(j:%,我再水

我猜你需要手写计算过程的答案

二进制和我们平时用的十进制,其实并没有什么本质区别,只是平时我们是“逢十进一”,这里变成了“逢二进一”而已。每一位,相比于十进制下的 0~9 这十个数字,我们只能用 0 和 1 这两个数字。

二进制转十进制

从右到左的第 N 位,乘上一个 2 的 N 次方

0011 =>> 0×2³+0×2²+1×2¹+1×2⁰ = 3

十进制转二进制

用2做短除法

6b5479e6d036

因此13这个十进制数,对应的二进制数,就是 1101。

原码表示法

一个二进制数最左侧的一位,当成是对应的正负号,比如 0 为正数,1 为负数,这样来进行标记。

0011 表示 +3、1011表示 -3

但是对于0:1000 代表 0, 0000 也代表 0。

补码表示法

一个二进制数最左侧的一位,表示-1ⁿ

1011 换算成十进制为:−1×2³+0×2²+1×2¹+1×2⁰=−5

0000 表示 0,1000 在这样的情况下表示 -8。

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ,得到每个题目的解答内容具,体如下:

7.10题目:
(1) [X]补 = 0.110011,[Y]补 = 0.101101
    LX = [X]补 = 0.110011
    MX = ~[Y]补 + 1 = 0.010011
    LX+MY = 1.000110
    因为最高位进位了,所以结果有溢出,是上溢。
(2) [X]补 = 0.010110,[Y]补 = 0.100101
    LX = 0.010110
    MY = ~[Y]补 + 1 = 1.011011
    LX+MY = 0.110001
    结果没有溢出。
(3) [X]补 = 1.110011,[Y]补 = 1.101101
    LX = ~[X]补 + 1 = 0.001101
    MY = ~[Y]补 + 1 = 0.010011
    LX+MY = 0.100000
    因为结果最高位为1,所以结果有溢出,是下溢。
(4) [X]补 = 1.001101,[Y]补 = 1.010011
    LX = ~[X]补 + 1 = 0.110011
    MY = ~[Y]补 + 1 = 0.101101
    LX+MY = 1.100000
    因为结果最高位为1,所以结果有溢出,是下溢。


7.11题目:
对于4位二进制数A3A2A1A0和B3B2B1B0,它们的和用进位信号C7表示为:
C7 = (A3B3 + A3B2 + A2B3) + (A2B2 + A2B1 + A1B2) + (A1B1 + A1B0 + A0B1) + (A0B0)

逻辑电路简图如下图所示:这个后面补充一下。


7.12题目:
74181是4位ALU,74182是1位全加器,因此需要使用64个74181和6474182来构成64位ALU。具体的逻辑图比较复杂。。。这个等下回答。


7.13题目:
(1) X = -0011,Y = 0101
    [X]补 = 1.1011,[Y]补 = 0.0101
    [X]补 × [Y]补 = 0.100111
    结果为正数,因此结果的补码等于结果本身,即[X·Y]补=0.100111。
(2) X = 0.11011,Y = -0.01010
    [X]补 = 0.11011,[Y]补 = 1.10110
    [X]补 × [Y]补 = 1.0111111
    结果为负数,因此需要将结果的补码转换为原码,即[1.1000001]补 = -0.1000001。
(3) X = -1011,Y = -1100
    [X]补 = 1101,[Y]补 = 0100
    [X]补 × [Y]补 = 1010100
    结果为正数,因此结果的补码等于结果本身,即[X·Y]补=1010100。
(4) X = 0.10110,Y = 0.11001
    [X]补 = 0.10110,[Y]补 = 0.11001
    [X]补 × [Y]补 = 0.01111110
    结果为正数,因此结果的补码等于结果本身,即[X·Y]补=0.011111107.14题目:
(1) X = 0.110101,Y = 0.100111
    [X]补 = 0.110101,[Y]补 = 0.100111
    [X]补 × [Y]补 = 0.100100111
    将结果的低8位分成两组,分别进行补码加法:
    00100111 + 00000001 = 00101000
    00100000 + 00000000 = 00100000
    组合起来得到结果为0.01010000,即[X*Y] = 0.01010000。
(2) X = -10111,Y = 10010
    [X]补 = 0101,[Y]补 = 10010
    [X]补 × [Y]补 = 11010110
    将结果的低8位分成两组,分别进行补码加法:
    10101110 + 00000001 = 10110011
    10110000 + 11111111 = 01110000
    组合起来得到结果为1.01110011,即[X*Y] = -0.100111017.15题目:
(1) X = -0.1010,Y = 0.1101
    先将X和Y转换为补码,得到[X]补 = 1.0110,[Y]补 = 0.1101。
    按照加减交替法进行计算:
    1. 1.0110 - 0.1101 = 0.1001,余数为0.10012. 将余数左移一位得到1.0010,然后加上除数0.1101,得到1.1111,商的第一位为13. 1.0010 - 0.1101 = 0.0101,余数为0.01014. 将余数左移一位得到0.1010,然后加上除数0.1101,得到1.0111,商的第二位为15. 0.1010 - 0.1101 = 1.0011,余数为1.00116. 将余数左移一位得到0.0110,然后加上除数0.1101,得到0.0011,商的第三位为0。
    因此,(X/Y)原 = -1101。
(2) X = -0.0110,Y = 0.1001
    先将X和Y转换为补码,得到[X]补 = 1.1010,[Y]补 = 0.1001。
    按照加减交替法进行计算:
    1. 1.1010 - 0.1001 = 1.0001,余数为1.00012. 将余数左移一位得到0.0001,然后加上除数0.1001,得到0.1010,商的第一位为03. 0.0001 - 0.1001 = 1.1000,余数为1.10004. 将余数左移一位得到0.1000,然后加上除数0.1001,得到1.0001,商的第二位为1。
    因为商的第二位为1,说明商的前两位为0.1,而余数的符号为负,因此(X/Y)原 = -0.10017.16题目:
浮点数的表示形式为±M×2^E,其中M是尾数,E是阶码。对于6位阶码和10位尾数,规格化后,最高位为1,因此尾数的范围是[1, 2)。具体的计算步骤如下:
(1) 87-238723分别转换为二进制,得到:
    87 = 1010111,23 = 001011123取反并加1,得到其补码为1101001。因此,问题转化为计算1010111 - 1101001。
    将两个数的阶码设置为相同的值,比如E=4,这样1010111可以


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢