gpt4 book ai didi

python - 我该怎么做才能让 python 使用补码来解释位,就像 c 一样

转载 作者:太空宇宙 更新时间:2023-11-04 00:52:28 24 4
gpt4 key购买 nike

其实我只是想让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 模块你可以获得你想要的结果:

    import ctypes
ctypes.c_int(1 << 31)

我希望这足以满足您接下来要对该整数执行的操作。 Python 在整数方面比 C 更宽容:它甚至在必要时通过升级到更大的表示形式(例如 int 到 long)来避免溢出来保存操作的结果。很高兴有更好的抽象,但在较低级别时确实会使事情复杂化。

关于python - 我该怎么做才能让 python 使用补码来解释位,就像 c 一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36563307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com