我在c中写了一点任意精度(我知道存在这样的库,例如gmp,nut我觉得写它更有趣,只是为了锻炼自己),我想知道数组是否是表示的最佳方式很长的整数,或者是否有更好的解决方案(可能是链接链)?其次,python如何处理大整数?(它使用数组还是其他技术?)
提前感谢您的任何回复
我在c中写了一点任意精度(我知道存在这样的库,例如gmp,nut我觉得写它更有趣,只是为了锻炼自己),我想知道数组是否是表示的最佳方式很长的整数,或者是否有更好的解决方案(可能是链接链)?其次,python如何处理大整数?(它使用数组还是其他技术?)
提前感谢您的任何回复
尝试阅读有关 的文档libgmp
,它已经实现了 bigints。从我所见,似乎整数被实现为动态分配的,当数字需要增长时,它会重新分配。请参阅http://gmplib.org/manual/Integer-Internals.html#Integer-Internals。
Python 长整数被实现为一个简单的结构,只有一个对象头和一个整数数组(可能是 16 位或 32 位整数,具体取决于平台)。
代码位于http://hg.python.org/cpython/file/f8942b8e6774/Include/longintrepr.h