我猜你需要手写计算过程的答案
二进制和我们平时用的十进制,其实并没有什么本质区别,只是平时我们是“逢十进一”,这里变成了“逢二进一”而已。每一位,相比于十进制下的 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和64个74182来构成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.01111110。
7.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.10011101。
7.15题目:
(1) X = -0.1010,Y = 0.1101
先将X和Y转换为补码,得到[X]补 = 1.0110,[Y]补 = 0.1101。
按照加减交替法进行计算:
1. 1.0110 - 0.1101 = 0.1001,余数为0.1001。
2. 将余数左移一位得到1.0010,然后加上除数0.1101,得到1.1111,商的第一位为1。
3. 1.0010 - 0.1101 = 0.0101,余数为0.0101。
4. 将余数左移一位得到0.1010,然后加上除数0.1101,得到1.0111,商的第二位为1。
5. 0.1010 - 0.1101 = 1.0011,余数为1.0011。
6. 将余数左移一位得到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.0001。
2. 将余数左移一位得到0.0001,然后加上除数0.1001,得到0.1010,商的第一位为0。
3. 0.0001 - 0.1001 = 1.1000,余数为1.1000。
4. 将余数左移一位得到0.1000,然后加上除数0.1001,得到1.0001,商的第二位为1。
因为商的第二位为1,说明商的前两位为0.1,而余数的符号为负,因此(X/Y)原 = -0.1001。
7.16题目:
浮点数的表示形式为±M×2^E,其中M是尾数,E是阶码。对于6位阶码和10位尾数,规格化后,最高位为1,因此尾数的范围是[1, 2)。具体的计算步骤如下:
(1) 87-23
将87和23分别转换为二进制,得到:
87 = 1010111,23 = 0010111
将23取反并加1,得到其补码为1101001。因此,问题转化为计算1010111 - 1101001。
将两个数的阶码设置为相同的值,比如E=4,这样1010111可以
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢