Binary 2'的优势;s补码大于1';补语是什么?
在二进制的负数表示中,2的补码比1的补码有什么优势?它是如何影响存储在二进制数的特定位表示中的值的范围的?2s补码不是用来表示负数的,它是一个倒数Binary 2'的优势;s补码大于1';补语是什么?,binary,negative-number,Binary,Negative Number,在二进制的负数表示中,2的补码比1的补码有什么优势?它是如何影响存储在二进制数的特定位表示中的值的范围的?2s补码不是用来表示负数的,它是一个倒数 意味着你可以做A+B’(其中B’是B的2s补码)来得到A-B,意味着你可以用加法器做任何事情,而不需要减法器二的补码比一的补码的主要优点是二的补码只有一个零值。一的补语有一个“正”零和一个“负”零 接下来,要使用补码来添加数字,您必须首先进行二进制加法,然后在进位值周围添加一个端点 二的补码只有一个零值,不需要进位值 您还询问了存储的值范围是如何受到
意味着你可以做A+B’(其中B’是B的2s补码)来得到A-B,意味着你可以用加法器做任何事情,而不需要减法器二的补码比一的补码的主要优点是二的补码只有一个零值。一的补语有一个“正”零和一个“负”零 接下来,要使用补码来添加数字,您必须首先进行二进制加法,然后在进位值周围添加一个端点 二的补码只有一个零值,不需要进位值 您还询问了存储的值范围是如何受到影响的。考虑一个八位整数值,以下是您的最小值和最大值:
Notation Min Max
========== ==== ====
Unsigned: 0 255
One's Comp: -127 +127
Two's Comp: -128 +127
参考资料:
- 在1中有一个
(-0
)和一个11111111
(+0
),即相同的00000000
有两个值。另一方面,在2的补码中,0
(0
)只有一个值。这是因为00000000
及+0 --> 00000000
- 在使用1进行加法或减法等算术运算时,我们必须向结果中添加额外的进位,即
,以获得正确答案,例如:1
+1(00000001) + -1(11111110) ----------------- = (11111111)
但是正确的答案是
负整数: 2的补码用于负整数是有意义的。1的补码只是一种计算技术,可能有助于计算2的补码。2的补码的实(败)对手是负整数的符号大小表示 无溢出:1的补码对负整数没有特殊用途。2的补码是有意义的,因为它可以在自然加减运算中使用,而不需要改变位。如果不发生溢出,则结果的符号位正好是正确的值。这种表示法中的位数提升是直接的,例如,要将8位有符号整数提升为16位,我们可以简单地在其高位字节中重复整数值的符号位
符号大小:相反,符号大小表示法正是人类用来表示负整数的方式。比特数提升和加减算法与此符号有点混乱。主要优点是:
0
。为了获得0
,我们必须添加进位
结果的位1
(11111111+1=00000000
)
在2的补码中,不必修改结果:
+1(00000001)
+
-1(11111111)
-----------------
= 1 00000000
与符号位表示法相比,2的补码表示法的另一个主要优点是2的补码表示法在硬件上易于操作2的补码表示法的优点#1 在二的补码表示法中,值为零 通过将所有位设置为零来唯一表示: ** 二者互补的优势#2 ** 执行算术运算时(例如, 二的加法、减法、乘法、除法) 2的补码表示中的有符号整数 可以使用 完全相同的方法 好像你有两个 无符号整数(即无符号的非负整数 位)。。。 除了 ,你扔掉了高台(或高台) 借 (用于减法) 二者互补的优势#3 二的补码表示的这个性质是这样的 几乎所有的将军 目的 今天可用的计算机使用二的补码。 为什么?因为,有了2的补码,我们不需要 特殊算法 (因此需要额外的电路)用于
包含负值的算术运算。我认为这篇维基百科文章应该充分回答这个问题:这不是优势问题。两个补语的第一步是一个补语。之后,添加一个以消除正零和负零的存在。(你必须去掉一个位,因为你“买”了一个位来携带符号——这就消除了你正在使用的位宽度中的两个值。)你的意思是不是表示负数的不是2的补码,而是表示负数的2的补码?不是2s的补码是*-1的十进制等价物。2s负数的补码是正的,因为最高有效位是零来概括它:对于N位,一个人的补码可以表示范围
−(2^(N)−1)−1) 至2^(N)−1)−1和2的补语可以表示范围内的整数−2^(N)−1) 至2^(N)−1)−1
。这不是鸡蛋的问题吗?因为硬件会优化选择的任何一个…@Pacerier,不,不是。无论选择哪一种,硬件是否会优化都无关紧要。事实上,构建硬件所需的电路(连接在一起的逻辑门系统)要优化1的补码的加法和减法,比优化2的补码的加法和减法所需的硬件电路要复杂得多。@user904542,你是说所有的电子硬件吗?嗯,那新的生物计算机呢?
+1(00000001)
+
-1(11111111)
-----------------
= 1 00000000