Binary 棘手的二进制难题

Binary 棘手的二进制难题,binary,Binary,两个数字A和B以单字节浮点表示法存储,指数使用最低有效(最右边)3位。每个数字的两个部分都是2的补码 如果A和B是01000111和11101000,则A+B的表示法与操作数相同(给出所有8位):__________ 以下是我到目前为止得出的结论: 我需要找到C,其中A+B=C 最右边的三位数字是问题的指数,因此: A=01000^111 据我所知,在2的赞美中 01000=8和111=-1 因此A=8^-1 B=1101^000,指数0的任何数字都是1,因此B=1 所以A+B=8^-1+1=9

两个数字A和B以单字节浮点表示法存储,指数使用最低有效(最右边)3位。每个数字的两个部分都是2的补码

如果A和B是01000111和11101000,则A+B的表示法与操作数相同(给出所有8位):__________

以下是我到目前为止得出的结论:

我需要找到C,其中A+B=C

最右边的三位数字是问题的指数,因此:

A=01000^111 据我所知,在2的赞美中 01000=8和111=-1 因此A=8^-1

B=1101^000,指数0的任何数字都是1,因此B=1 所以A+B=8^-1+1=9/8 现在我需要将9/8转换为一个5字节2的互补二进制基数,提升为一个3字节2的互补二进制指数。据我所知,基数的范围是-32到31,指数的范围是-3到2。该范围内没有组合为=9/8。我不知道我在哪里或如何出错

根据问题,最右边的三位数字是指数,因此:A=01000^111据我在2的恭维词01000=8和111=-1中理解,因此A=8^-1B=1101^000,指数0的任何数字都是1

你错了,陈述是错误的

A = b01000 * 10^b111 = 8 * 10^-1 = 8 * 0.1 = 0.8
B = b11101 * 10^b000 = -3 * 10^0 = -3 * 1 = -3
当他们说“指数”时,他们指的是数字的指数
*10^x
,以确定小数点需要向左或向右移动多远


所以A+B=C将是
0.8-3=-2.2
。你现在需要把-2.2翻译成符号,我将把它作为练习留给你。

看起来我们把这个搞错了,下面是事后给出的答案

请注意,在确保两个浮点数的指数相同之前,不能以常规方式添加它们。 A=8*2^-1=4。 B=-3*2^0=-3。 将A更改为4*2^0( 将第一个数字更改为4*2^0(00100000)。然后可以将它们相加,得到7*2^0 将第一个数字更改为00100000(即001000000)。现在您可以添加这两个数字
00100000(=4*2^0)+11101000(=3*2^0)=00001100(=1*2^0)

因此,在这个符号中表示-2.2,我需要将-22(11010)提升到以10为底的指数,并将导致小数向左滑动一次,即10^-1(111)的最终结果为11010111,这看起来正确吗?顺便谢谢!