我正在构建一个类似于c的编译器,但我想要它解析大于2 ^ 32的整数。怎么可能?如何在python和ruby中实现大整数的语言.. !!
答案 0 :(得分:7)
有些图书馆可以做这类事情。
查看gmplib。
答案 1 :(得分:2)
有许多大型数据库,请参阅this wikipedia article以获取完整列表。
GMP(GNU Multiple Precision Arithmetic Library)足以应对我所遇到的一切。 NTL更加相同,但面向对象。
一般来说,这些库代表带有数组的数字,如果你想要自己滚动,那么数字的每个数字都是一个字符,但这需要很多工作。
答案 2 :(得分:1)
如果你想自己写,请跟随我的记忆行程; - )。
在过去,当计算机使用8位时。我们经常需要用大数字计算(例如> 255)。我们都必须编写例程。例如,添加。
如果我们需要相互添加两个字节的数字,我们使用以下算法:
您可以将其扩展为更多字节/字/ dword / qwords以及其他运算符。
答案 3 :(得分:0)
我相信你需要某种bigint库,可以在网上找到,只需进行一些搜索,你就可以找到一个适合你项目的库。
因为,我认为简单地解析整数是不够的。您的用户不仅希望存储,而且可能还希望使用这些数字执行操作。
答案 4 :(得分:0)
Felix von Leitner有一个slide,涵盖了一些bignum基础知识。就个人而言,我认为这是非常翔实和技术性的。
答案 5 :(得分:0)
https://mattmccutchen.net/bigint/
仅限C ++源代码。使用非常简单。
答案 6 :(得分:-2)
你必须在c中使用某种结构来实现这一点。如果您使用x86平台而不是x64,您会发现这很困难。如果您使用的是x86,请准备好熟悉程序集和进位标志。
祝你好运!