Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 将-1表示为真正的二进制模式_Python 2.7 - Fatal编程技术网

Python 2.7 将-1表示为真正的二进制模式

Python 2.7 将-1表示为真正的二进制模式,python-2.7,Python 2.7,与python3不同,python2中的整数是有限的 In [1]: bin(-1) Out[1]: '-0b1' -1'表示为-0b1' 如何将“-1”编码为像“11111111111……”这样的真正二进制模式?要使二的补码编码有任何意义,整数需要固定长度。Python的整数不是,因此这种编码对它们不可用 不过Numpy确实使用了这种编码。因此, import numpy as np bin(np.uint8(-1)) # => '0b11111111' bin(np.uint32(-

与python3不同,python2中的整数是有限的

In [1]: bin(-1)
Out[1]: '-0b1'
-1'表示为
-0b1'


如何将“-1”编码为像“11111111111……”这样的真正二进制模式?

要使二的补码编码有任何意义,整数需要固定长度。Python的整数不是,因此这种编码对它们不可用

不过Numpy确实使用了这种编码。因此,

import numpy as np
bin(np.uint8(-1))
# => '0b11111111'
bin(np.uint32(-1))
# => '0b11111111111111111111111111111111'
然而,对于Python自己的整数,
0b11111111
总是
127
,而不是
-1
0b11111111111111111111
始终是
4294967295
,而不是
-1
。因为Python整数只受内存的限制,任何数量的整数都只能产生一个正整数

强制Python整数进入类似C的结构的另一种方法是。例如


Python2整数是有限的,这是正确的,但它们透明地扩展为长整数,而长整数不是有限的。Python3没有这个划分。但是,我不知道会有什么情况会改变我上面写的内容。

要使二的补码编码有任何意义,整数必须是固定长度的。Python的整数不是,因此这种编码对它们不可用

不过Numpy确实使用了这种编码。因此,

import numpy as np
bin(np.uint8(-1))
# => '0b11111111'
bin(np.uint32(-1))
# => '0b11111111111111111111111111111111'
然而,对于Python自己的整数,
0b11111111
总是
127
,而不是
-1
0b11111111111111111111
始终是
4294967295
,而不是
-1
。因为Python整数只受内存的限制,任何数量的整数都只能产生一个正整数

强制Python整数进入类似C的结构的另一种方法是。例如

Python2整数是有限的,这是正确的,但它们透明地扩展为长整数,而长整数不是有限的。Python3没有这个划分。然而,我不知道它会改变我上面写的内容