Binary 我们能把负二进制也解释为正二进制吗(请阅读问题)?

Binary 我们能把负二进制也解释为正二进制吗(请阅读问题)?,binary,decimal,converters,twos-complement,Binary,Decimal,Converters,Twos Complement,我已经知道负二进制数的概念,最高有效位处的0表示二进制为正,最高有效位处的1表示二进制为负 但让我不敢就STACKOVERFLOW提出问题的问题是: 我们可能希望表示一个巨大的数字,但它的表示在msb中出现1的次数又如何呢 让我这样解释:考虑到上述规则,我们可以说, 例如,在8位系统中,正数12(十进制)的值将以二进制形式写入00001100,而负数12(十进制)将以 10001100但让我有点困惑的是,10001100也可以解释为十进制中的268,而我们知道,使用这种转换方法,它是二进制中12

我已经知道负二进制数的概念,最高有效位处的0表示二进制为正,最高有效位处的1表示二进制为负

但让我不敢就STACKOVERFLOW提出问题的问题是: 我们可能希望表示一个巨大的数字,但它的表示在msb中出现1的次数又如何呢

让我这样解释:考虑到上述规则,我们可以说, 例如,在8位系统中,正数12(十进制)的值将以二进制形式写入00001100,而负数12(十进制)将以
10001100但让我有点困惑的是,10001100也可以解释为十进制中的268,而我们知道,使用这种转换方法,它是二进制中12的负数形式。


我只想知道如何处理这个棘手的、双面的可能解释二进制数的方法,就像我上面给出的例子一样(它似乎是负数,哦!但是等等,它也可能不是:)。这取决于您使用的类型。如果您使用的是有符号的8位表示,那么您可以存储的最大数字是1111111(即,第一位被预留)

在我们的示例中,这将转换为127的整数值

如果使用无符号类型,则可以使用额外的位,允许存储11111111或255(表示为整数)

一个强类型语言和一个好的编译器应该会发现你试图将134赋值给一个有符号的8位整数,并且会把错误吐到你身上

如果你自己在做一些奇怪的事情,那你就靠自己了!没有办法在事后重建,不管它是消极的还是积极的,所以你必须选择一个系统并坚持下去


现在的一般惯例是始终使用有符号表示——尽管我见过代码(通常用于极端计算任务,如天体物理计算)使用无符号值只是为了节省内存。当然,根据惯例,图像通常会使用无符号值。

问题是,我自己知道msb是我的符号,它是一个负二进制,但当我使用在线转换器转换它时,它似乎有点棘手,所以计算机如何理解这是一个负二进制,因为我尝试了一个网站来转换它,它没有意识到这是一个负二进制,并将10001100转换为268。你需要选择一个在线转换器,它允许你告诉它类型是否有符号。这也是正确的,因为即使是无符号值,也应该是140!!这个转换器理解带符号的数字:python如何处理它?@moh88如果您可以编辑您的问题,以便更清楚地了解您拥有什么,以及您最终想要实现什么,可能会有所帮助?这将节省很多关于pingpongHere关于python如何处理类型转换的评论。如果您希望获得更有针对性的帮助,可以提出一个问题,并举例说明您所拥有的数据,具体说明您需要如何处理它:)