《计算机科学导论》第四章课后题答案

用符号加绝对值相加,进行运算,那后面是怎么等得起来的?符号加绝对值表示法根本不能直接相加吧?

img

这个问题涉及到的是补码加法和运算过程的转换。我会逐步解释每一步的过程:

将数字转化为符号加绝对值表示法:

a. 19 表示为二进制:00010011
b. 23 表示为二进制:00010111
c. -19 的绝对值是 19,转化为二进制:00010011
d. -23 的绝对值是 23,转化为二进制:00010111
进行加法运算:

a. 19 + 23 => 00010011 + 00010111 = 00101010(二进制)
b. 19 - 23 => 00010011 - 00010111 = 11100100(二进制),这里需要考虑减法的运算过程和借位。
c. -19 + 23 => 00010011 + 00010111 = 00101010(二进制)
d. -19 - 23 => 00010011 - 00010111 = 11100100(二进制),这里同样需要考虑减法的运算过程和借位。
将结果转化为十进制:

a. 00101010(二进制) = 42(十进制)
b. 11100100(二进制) = -28(十进制)
c. 00101010(二进制) = 42(十进制)
d. 11100100(二进制) = -28(十进制)
最后几个表达式的运算结果以及转化为十进制的值如上所示。这是一个通过二进制补码表示法进行加法和减法运算的示例,同时也涉及了一些运算过程的转换。需要注意减法过程中的借位操作,以及符号位的处理。

【以下回答由 GPT 生成】

a. 19+23的符号加绝对值表示法转化为二进制如下:

19: positive, 10011 23: positive, 10111

根据符号加绝对值表示法,首位为符号位,0代表正数,1代表负数。后面的位数是数字的绝对值的二进制表示。

在二进制表示中,将两个二进制数的每一位相加,并保留进位。如果最高位有进位,则结果溢出。此时,最高位结果按照原来的数值进行处理,即将符号位与溢出位相加。

10011 + 10111


100010

将结果100010转化为十进制,得到34。

所以,19+23的符号加绝对值表示法转化为二进制是100010,转化为十进制是34。

b. 19-23的符号加绝对值表示法转化为二进制如下:

19: positive, 10011 23: negative, 10111

先将23的绝对值取反得到00001,再加1得到00010。所以,23的符号加绝对值表示法转化为二进制是10010。

根据符号加绝对值表示法,正数的符号位为0,负数的符号位为1。所以19的符号加绝对值表示法转化为二进制是00001100。

进行二进制相加运算:

00001100 + 10010


10010010

将结果10010010转化为十进制,得到146。

所以,19-23的符号加绝对值表示法转化为二进制是10010010,转化为十进制是146。

c. -19+23的符号加绝对值表示法转化为二进制如下:

19: positive, 10011 -23: negative, 10111

将19的绝对值取反得到01100,再加1得到01101。所以,19的符号加绝对值表示法转化为二进制是10110101。

根据符号加绝对值表示法,正数的符号位为0,负数的符号位为1。所以23的符号加绝对值表示法转化为二进制是00010111。

进行二进制相加运算:

10110101 + 00010111


11001100

将结果11001100转化为十进制,得到-204。

所以,-19+23的符号加绝对值表示法转化为二进制是11001100,转化为十进制是-204。

d. -19-23的符号加绝对值表示法转化为二进制如下:

-19: negative, 10011 -23: negative, 10111

将19的绝对值取反得到01100,再加1得到01101。所以,-19的符号加绝对值表示法转化为二进制是10110101。

将23的绝对值取反得到01001,再加1得到01010。所以,-23的符号加绝对值表示法转化为二进制是10101010。

进行二进制相加运算:

10110101 + 10101010


01011111

将结果01011111转化为十进制,得到47。

所以,-19-23的符号加绝对值表示法转化为二进制是01011111,转化为十进制是47。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^