Format negative integers in two's complement representation

后端 未结 1 1338
轻奢々
轻奢々 2020-12-19 09:58

I would like to represent an negative integer in bits, using two\'s complement representation. Using standard Python bit representation utilities doesn\'t help much:

1条回答
  •  隐瞒了意图╮
    2020-12-19 10:26

    Python's integers already use two's complement, but since they have arbitrary precision, the binary representation of negative numbers would have an infinite string of 1s at the start, much like positive numbers have an infinite string of 0s. Since this obviously can't be shown, it is represented with a minus sign instead.

    If you want the binary representation for a specific width, you can just use modulo.

    >>> bin(-5)
    '-0b101'
    >>> bin(-5 % (1<<32))
    '0b11111111111111111111111111111011'
    

    0 讨论(0)
提交回复
热议问题