Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Computer science 用两个'减去二进制数;补语_Computer Science - Fatal编程技术网

Computer science 用两个'减去二进制数;补语

Computer science 用两个'减去二进制数;补语,computer-science,Computer Science,假设151和214是以2的补码格式存储的有符号8位十进制整数。使用饱和算法计算151-214。结果应以十进制书写。展示你的作品 是这样吗?我不熟悉这一点: 十进制|二进制|两位补码 151 | 10010111 | 011001 214 | 11010110 | 00101010 减去00111111->63 为什么我会得到正63?“二的补码格式”是有符号整数的标准二进制表示形式。这并不意味着你必须执行二者的互补运算 也就是说,这个问题很难解析。“假设151是一个8位有符号整数”是愚蠢的,因为它

假设151和214是以2的补码格式存储的有符号8位十进制整数。使用饱和算法计算151-214。结果应以十进制书写。展示你的作品

是这样吗?我不熟悉这一点:

十进制|二进制|两位补码
151 | 10010111 | 011001
214 | 11010110 | 00101010

减去00111111->63

为什么我会得到正63?

“二的补码格式”是有符号整数的标准二进制表示形式。这并不意味着你必须执行二者的互补运算

也就是说,这个问题很难解析。“假设151是一个8位有符号整数”是愚蠢的,因为它太大了,不可能是一个8位有符号整数。这可能意味着您应该将151和214的(无符号)二进制表示重新解释为8位有符号表示,然后减去结果:

当151和214的表示被解释为有符号时,128处的位变为-128。差值为256,因此151变为151-256=-105,214变为-42

如果我们计算-105-(-42),我们得到-63。这与151-214相同,这可能是这个问题的重点

这足够小,不会饱和,所以在这种情况下,我们使用饱和算法并不重要


通常我不会回答像这样的家庭作业问题,但我觉得很抱歉,你必须回答的问题写得这么糟糕。您可能应该删除问题,而不是接受此答案。

您不能以8位签名格式存储214。它可以是以有符号16位格式存储的8位整数,也可以是负7位数字的8位2补表示,也可以是溢出错误。它是哪一个?为什么它太大而不能成为8位有符号整数?8位有符号整数的范围从-128到127