首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个正数的二的补码记法是相同的数字吗?

一个正数的二的补码记法是相同的数字吗?
EN

Stack Overflow用户
提问于 2009-04-27 15:31:46
回答 7查看 79.4K关注 0票数 13

一个正数的二进制补码记法与它的二进制表示法是否相同?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-04-27 15:39:54

是一个正数的二的补码记法吗?

wiki中的一个很好的例子是,通过注意256 = 255 + 1来实现与2的补码的关系,并且(255−x)是x的1的补码

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

它的工作方式是msb(最高有效位)接收负值,因此在上面的情况下

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

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

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

票数 8
EN

Stack Overflow用户

发布于 2009-04-27 17:13:49

一些答案和评论混淆了“二补记法”和“一个数字的二补”之间的关系。这个问题可能需要澄清一点,但它显然是在问“二的补码表示法”。

二的补码表示法包括正数和负数。二进制数可以表示很多东西,所以为了确定任何二进制数应该表示什么,必须首先知道使用的是什么符号或编码。二进制数可以是无符号整数、二进制补码整数、IEEE浮点数、字符串或其他完全的数字。

因此,2的补码表示法中的7是00000111,就像它是一个无符号整数一样。2的补码表示法中的-7是11111001。

因此,是的,2的补码表示法中的正整数与无符号整数的表示方式相同(假设它是所用位数的有效整数)。

票数 14
EN

Stack Overflow用户

发布于 2009-04-27 16:41:44

我认为你在这里搞混了一些东西。正整数通常存储为简单二进制数。1是1,10是2,11是3,依此类推。负整数存储为其绝对值的2的补码,即相应的正整数的补码。当使用这种记法时,两个正数的补码是一个负数。

为了反转数字的符号,你总是计算该数字的2的补码:反转所有位,然后加1。这与原始数字是正数还是负数无关。

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

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/794062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档