【问题标题】:Confusion on twos compliment in pythonpython中二进制补码的混淆
【发布时间】:2016-12-29 02:14:59
【问题描述】:

所以我在 python shell 中尝试了以下操作:

>>> x = -1
>>> x < 0
True
>>> x = -x
>>> x ^= 0xffffffff
>>> x += 1
>>> x < 0
False

所以,如果我有一个最初为负的数字,然后我否定它并接受两个恭维,它不应该再次为负吗?为什么python认为这个数字是正数?

【问题讨论】:

  • 使用print() 来查看你在x 中拥有什么 - int 可以保持大数字 - 比 0xffffffff 更大,所以你不会否定它。

标签: python binary twos-complement


【解决方案1】:

您可以使用Print 检查您的代码,在此之前您是肯定的,

>>> x=-1
>>> x<0
True
>>> x=-x
>>> x
1
>>> x^=0xffffffff
>>> x
4294967294
>>> x+=1
>>> x
4294967295
>>> x<0
False

欲了解更多详情,请访问这里https://wiki.python.org/moin/BitwiseOperators

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-01
    • 2010-12-08
    • 1970-01-01
    • 2019-08-04
    • 2014-03-19
    • 1970-01-01
    • 2021-11-05
    相关资源
    最近更新 更多