如何让 python 使用 1099511627776 位大(是的。137 gb)数量级的值?我需要一些实现这一点的东西(或者如果你能提出更好的方法来做到这一点,将改变方法)。显然,pgp 的新长度类型有 3 个部分而不是 2 个部分。现在它们是:长度类型、长度值类型和长度。长度类型为 2 位,转换为 191 字节、8383 字节、4294967296 字节或部分长度。然后长度以字节编码。如果我什至做不到,我将如何检查一个值是否小于 4294967296 字节1 << (4294967296 << 8)
?它太大了,即使很长也装不下。
问问题
766 次
4 回答
2
它不仅太大而无法放入很长的时间,而且太大而无法放入任何计算机的内存中。我想你误会了什么。
据我了解,最大的键值为 4,294,967,295 字节。那是 4GB,而不是 137GB。您在内存中保存的密钥不是一个数字,而是一串字节。所以我不知道你从哪里得到一个 137 GB 大的数字。
如果 PGP 要求这样做,就不可能实施。由于有实现,我敢肯定它不是这样做的。
(另外,我确信 Python 有 PGP 模块,但如果你这样做不是因为你需要它,而是为了练习并且因为你想学习,那就继续吧!)
于 2011-01-03T21:42:50.780 回答
1
使用像GMPY这样的大数字库。
于 2011-01-03T18:41:39.853 回答
1
的三自变量形式pow()
。
于 2011-01-03T06:54:18.757 回答
0
我对 RFC4880(2007 年 11 月)的解释不同。3.2 节将多精度整数描述为具有 2 个八位字节长度,因此最大大小为 64KB。第 4.2.2 节描述了新的数据包格式和您所描述的比例的文档编号。但数据包格式与多精度整数格式不同。如果您有不同的解释,请使用您正在阅读的 RFC 的确切部分更新您的问题。
于 2011-01-04T01:44:37.723 回答