我在 python 中处理数万位数的数字。long 类型在对这些数字执行数学运算时效果很好,但是我无法以足够快的方式访问这些数字的最高位。请注意,我不确切知道该数字包含多少位数。“最高位”是指最高位的数字,最低位可以使用模数快速访问。
我可以想到两种在 python 中访问这些数字的方法,但它们对于我的目的来说都太慢了。我尝试过转换为字符串并通过数组方法访问数字,但是当您有 10,000 多个数字时,类型转换很慢。或者,我可以简单地屏蔽位并截断,但这需要我知道 long 中有多少位。查找 long 中的位数需要在计数器上循环和进行掩码测试,这肯定会比字符串转换慢。
从这里的描述看来,long 类型实际上确实包含一个 bignum 数组。有什么方法可以访问存储 long 的底层数据结构,或者可能检查 long 从基本类型中有多少位?
如果人们有兴趣,我可以提供一个带有基准的示例。