gpt4 book ai didi

python-3.x - python中的位表示

转载 作者:行者123 更新时间:2023-12-05 02:51:55 25 4
gpt4 key购买 nike

嗨,我有一个关于 python 中的位表示的问题

当我使用位运算1<<31,那么我们可以看到位是

1000 0000 0000 0000 0000 0000 0000 0000

python 会将此值打印为 2147483648

但是当我给出一个像 a = -2**31 这样的变量值时

位也是

1000 0000 0000 0000 0000 0000 0000 0000

但是python会打印-2147483648

所以如果位相同,python 如何决定使用 2147483648 或 -2147483648?

最佳答案

在 python 中,整数没有精度限制。这意味着,除其他事项外,数字不存储在二进制补码中。符号不存储在数字的位表示中。

所以所有-2**31 , 2**311<<31将具有相同的数字位表示。 -2**31的标志部分不是数字的按位表示的一部分。标志是分开的。

如果你尝试这个你可以看到这个:

>>> bin(5)
'0b101'
>>> bin(-5)
'-0b101'

关于python-3.x - python中的位表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62869111/

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