两个补码表示正数是否相同?

yes*_*aaj 11 binary complement

二进制补码表示正数是否与二进制表示相同?

Sva*_*nte 9

我认为你在这里混淆了一些东西.正整数通常存储为简单的二进制数.1是1,10是2,11是3等.负整数被存储为它们的绝对值的二进制补码,即相应的正整数.当使用这种表示法时,正数的两个补码是负数.

为了翻转数字的符号,您总是计算该数字的二进制补码:翻转所有位,然后加1.这与原始数字是正数还是负数无关.

示例:3位8位有符号二进制表示法是00000011.要翻转符号,首先翻转所有位(11111100),然后加1(11111101).所以,-3是11111101.要再次翻转符号,首先翻转所有位(00000010),然后加1(00000011),你可以看到这是相同的3.

  • “二进制补码”和“一个数的二进制补码”是两个不同的东西。问题是关于二进制补码表示法。 (2认同)

Rob*_*ton 9

一些答案和评论是将"两个补码表示法"和"两个补码"之间的关系弄糊涂了.这个问题可能需要澄清一点,但显然是在询问"两个补码表示法".

二进制补码表示包括正数和负数.二进制数可能意味着很多东西,因此为了确定任何二进制数应该表示什么,必须首先知道正在使用的符号或编码.二进制数可以是无符号整数,二进制补码整数,IEEE浮点数,字符串或其他完全匹配.

所以7的二进制补码表示法是00000111,就像它是无符号整数一样.-7的二进制补码表示为11111001.

所以,是的,二进制补码表示法中的正整数表示方式与无符号整数相同(假设它是使用的位数的有效整数).


TSt*_*per 7

两个补码表示正数是否相同?

好的例子来自wiki,通过注意到256 = 255 + 1来实现与二进制补码的关系,并且(255-x)是x的补码.

0000 0111 = 7二进制补码是1111 1001 = -7

它的工作方式是msb(最高有效位)接收负值,所以在上面的例子中

-7 = 1001 = -8 + 0+ 0+ 1

编辑 -以二进制补码表示法编写的正数与用无符号表示法编写的数字相同(尽管最高有效位必须为零).通过反转其绝对值的所有位,然后在结果中加1,可以用二进制补码表示法写入负数.二进制补码表示法

可以用k位二进制补码表示法表示的最大数是2 ^(k-1)-1


小智 6

根据我在计算机科学课上学到的东西,两个补码,一个补码和有符号幅度只有正整数值才相同.这将与负整数值不同,其中对于一个补码,您将不得不翻转这些位,并且对于两个补码保持翻转位并添加1位以使负位变为其绝对整数.

我还在学习,第一年是计算机科学专业的学生,​​希望它有所帮助.