实际上,我只希望Python和c做同样的事情
例如,在c中:
int num = 1 << 31; // num's bits should be 0x8000 0000.
printf("%d\n", num); // the print is -2147483648, because of complememnt.
但是,在Python中:
>>> num = 1 << 31
>>> print num
2147483648
>>> print int.bit_length(num)
32
>>> print '{0:b}'.format(num)
10000000000000000000000000000000
Python似乎使用了真正的代码来解释num,我该怎么做才能让Python像c一样使用补码来解释位呢
使用
ctypes
模块可以得到您想要的结果:我希望这足以满足您接下来对这个整数所做的操作。Python比带整数的C更宽容:当需要保存操作结果时,它甚至通过升级到更大的表示(例如int到long)来避免溢出。很高兴有更好的抽象,但会复杂的事情时,去较低的水平
相关问题 更多 >
编程相关推荐