Binary 两个';补语

Binary 两个';补语,binary,int,representation,twos-complement,Binary,Int,Representation,Twos Complement,据我所知,二者的互补算法是: 1.用二进制表示十进制。 2.反转所有位。 3.在最后一位加1 对于表示为:00000000000011的数字3,二者的补码结果将是11111111 01,即-3 到现在为止,一直都还不错。 但对于表示为000000000000010的数字2,二者的补码结果将是11111111 01,它不是2而是-3。 我做错了什么 我做错了什么 跳过第二个示例的步骤3(或误解它) 11111111 01是2的补码(即步骤1和步骤2的结果);您需要添加1-不是添加到最后一位(如二进

据我所知,二者的互补算法是:

1.用二进制表示十进制。
2.反转所有位。
3.在最后一位加1

对于表示为:
00000000000011
的数字
3
,二者的补码结果将是
11111111 01
,即
-3

到现在为止,一直都还不错。 但对于表示为
000000000000010
的数字
2
,二者的补码结果将是
11111111 01
,它不是2而是-3。
我做错了什么

我做错了什么

跳过第二个示例的步骤3(或误解它)

11111111 01
2
的补码(即步骤1和步骤2的结果);您需要添加1-不是添加到最后一位(如二进制数字),而是添加到最后一个结果(如步骤2所示)

我做错了什么

跳过第二个示例的步骤3(或误解它)

11111111 01
2
的补码(即步骤1和步骤2的结果);您需要添加1-不是添加到最后一位(如二进制数字),而是添加到最后一个结果(如步骤2所示)

它也适用于负片:

1...1110 // -2
0...0001 // Flip the bits
0...0010 // Add one
它也适用于负片:

1...1110 // -2
0...0001 // Flip the bits
0...0010 // Add one

对于你的代码,你可能需要做2的补码:我只是想把它扔出去(一种更快的获得负二进制的方法):

2的补码对于查找二进制文件的值非常有用,但是我想到了一种更简洁的方法来解决这样的问题(从未见过其他人发表过):

以二进制为例:1101,它[假设空格“1”是符号]等于-3

使用2的补码我们可以这样做…将1101翻转到0010…添加0001+0010==>得到0011。0011,正二进制=3。因此1101=-3

我意识到的:

不需要所有的翻转和加法,你只需要用(23*0)+(22*1)+(21*0)+(20*1)=5的基本方法来求解一个正二进制数(比如0101)

使用负片执行完全相同的概念!(稍微扭转一下)

以1101为例:

对于第一个数字,而不是23*1=8,请执行-(23*1)=-8

然后像往常一样继续,执行-8+(22*1)+(21*0)+(20*1)=-3


希望这能有所帮助

对于你的代码,你可能需要做2的补码:我只是想把它扔出去(一种更快的获得负二进制的方法):

2的补码对于查找二进制文件的值非常有用,但是我想到了一种更简洁的方法来解决这样的问题(从未见过其他人发表过):

以二进制为例:1101,它[假设空格“1”是符号]等于-3

使用2的补码我们可以这样做…将1101翻转到0010…添加0001+0010==>得到0011。0011,正二进制=3。因此1101=-3

我意识到的:

不需要所有的翻转和加法,你只需要用(23*0)+(22*1)+(21*0)+(20*1)=5的基本方法来求解一个正二进制数(比如0101)

使用负片执行完全相同的概念!(稍微扭转一下)

以1101为例:

对于第一个数字,而不是23*1=8,请执行-(23*1)=-8

然后像往常一样继续,执行-8+(22*1)+(21*0)+(20*1)=-3


希望这能有所帮助

谢谢,我在添加1时出错。@pst我不知道你在说什么。我还有一个小问题。我对一个数字求反的算法和从右到左扫描该数字并在第一次出现1后对所有位进行补全的算法有什么区别?@Lior我不确定它是否有效,但你可以用笔和纸试试。即使是这样,我认为所需的电路远不止是简单的位反转和加法,这是非常快的。好的,谢谢:)如果你想了解更多关于“替代转换过程”(如维基百科所述):谢谢,我在添加1时出错。@pst我不知道你在说什么我还有一个小问题。我对一个数字求反的算法和从右到左扫描该数字并在第一次出现1后对所有位进行补全的算法有什么区别?@Lior我不确定它是否有效,但你可以用笔和纸试试。即使是这样,我认为所需的电路远不止是简单的位反转和加法,这非常快。好的,谢谢:)如果你想了解更多关于“替代转换过程”(如维基百科所述):谢谢,我在添加1时出错了。谢谢,我在添加1时出错了。