gpt4 book ai didi

python - 转换为二进制会截断位

转载 作者:行者123 更新时间:2023-12-01 02:20:49 24 4
gpt4 key购买 nike

当尝试创建随机 256 位数字时,输入会被截断(有时截断为 252 位,其他截断为 254 位)。 MacOS 塞拉利昂 10.12.6

python --version
Python 2.7.13 :: Anaconda 4.4.0 (x86_64)

示例:

>>> private_key = binascii.hexlify(os.urandom(32))
>>> len(bin(int(private_key, 16))[2:])
256
>>> private_key = binascii.hexlify(os.urandom(32))
>>> len(bin(int(private_key, 16))[2:])
252
>>> private_key = binascii.hexlify(os.urandom(32))
>>> len(bin(int(private_key, 16))[2:])
256

最佳答案

正如 @vaulath 在评论中所说,bin 截断为不带前导零的最短表示形式。因此,如果一个数字开头有 2 个零,那么它只有 254 位。您也可以很容易地看到这一点:

>>> bin(int("001001", 2))[2:]
'1001'
>>> len("001001")
6
>>> len(bin(int("001001", 2))[2:])
4

如果您想要完整的 256 位,您可以这样做:

>>> len(format(0,"0256b"))
256

关于python - 转换为二进制会截断位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47960605/

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