gpt4 book ai didi

python - 获取 Python 中整数所需的字节大小

转载 作者:太空狗 更新时间:2023-10-29 17:21:17 25 4
gpt4 key购买 nike

我如何找出某个整数占用的字节数?

例如对于

  • 十六进制 \x00 - \xff(或十进制 0 - 255 = 二进制 0000 0000 - 1111 1111) 我正在寻找 1(字节),
  • 十六进制 \x100 - \xffff(或十进制 256 - 65535 = 二进制 0000 0001 0000 0000 - 1111 1111 1111 1111) 会给我 2(字节)

等等。

输入十六进制或十进制格式有什么线索吗?

最佳答案

def byte_length(i):
return (i.bit_length() + 7) // 8

当然,正如 Jon Clements 指出的那样,这不是实际 PyIntObject 的大小,它有一个 PyObject header ,并以最容易处理的任何方式将值存储为 bignum with 而不是最紧凑的,并且您必须至少有一个指向实际对象顶部的指针(4 或 8 个字节),依此类推。

但这是数字本身的字节长度。这几乎可以肯定是最有效的答案,也可能是最容易阅读的。

还是 ceil(i.bit_length()/8.0) 更具可读性?

关于python - 获取 Python 中整数所需的字节大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14329794/

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