问题标签 [bignum]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scripting - 谁做带有浮动小数点的非十进制大数?
Tcl 库 math::bignum 和 math::bigfloat 很好,两者之间的中间地带需要解决。即,位于不同基数并具有小数点的大数。
目前 math::bignum 只处理整数(afaict),而 math::bigfloat 不允许你为 math::bigfloat::fromstr 指定不同的基数(同上)。
有谁知道任何主要脚本语言(例如 Tcl、Perl、Python、Ruby、Lua)或不太主要的脚本语言(例如 newLISP)的库,它在不同的基数中实现 bignums 并处理小数点?
php - Unix 时间戳和 JavaScript 时间;太大!
我正在为 jQuery 使用 flot 图形库,它对任何时间序列都使用 javascript 时间(提醒一下,这是自 1970 年 1 月以来的毫秒数。Unix 时间是seconds)。
我当前的代码如下所示:
这给了我一组 Unix 时间戳。我想在循环中为 JavaScript 准备数据,但是当我尝试
数字太大,它会吐出“[-2147483648]”。我是否需要将允许在数组中保存的变量的“类型”更改为 bignum 之类的?
谢谢!
implementation - 非常非常长的小数的算术运算
我一直很好奇:我怎样才能对很长的小数进行算术运算——例如,将 pi 计算到小数点后 3000 位(尤其是在命令式语言中)?
c - 使用 GMP 的 bignum 的平方根
我需要准确地得到一个 210 位数字的平方根,我认为 GMP 是适合这项工作的工具,我做错了什么?
输入:
24524664490027821197651766357308801846702678767833275974341445171506160083003858 72169522083993320715491036268271916798640797767232430056005920356312465612184658 17904100131859299619933817012149335034875870551067
输出:
49522383313031109809242226159886283348695660460381271324714928680654813093947239 9634016783775955618921028
24524664490027821197651766357308801846702678767833275974341445171506160083003858 72169522083993320715491034366358025027526868495267716284867043049443779615862887 47102011391915422793532619329760963626718900576784
perl - 如何在 Perl 中 sprintf 一个大数字?
在 Windows 32 位平台上,我必须阅读一些数字,这是出乎意料的,它们的值可能高达 99,999,999,999,但仅此而已。尝试对sprintf("%011d", $myNum)
它们输出溢出:-2147483648。
我不能使用 BigInt 模块,因为在这种情况下,我应该深入更改代码。我无法将格式管理为字符串, sprintf("%011s", $numero)
,因为减号处理不正确。
我该如何管理?打包/解包会有所帮助吗?
c - 将非常大的数字从二进制转换为十进制并打印
我知道如何将二进制转换为十进制。我至少知道 2 种方法:表格和电源 ;-)
我想将二进制转换为十进制并打印这个十进制。此外,我对这个“小数”不感兴趣;我只想打印它。
但是,正如我上面所写的,我只知道将二进制转换为十进制的两种方法,并且它们都需要加法。因此,我正在计算二进制 1 或 0 的一些值,并将其添加到记住的值中。这是一个很薄的地方。我有一个非常非常大的数字(1 和 64 个零)。在转换时,我需要将一些中间结果放在一些“变量”中。在 C 中,我有一个“int”类型,它只有 4 个字节,不超过 10^11。
因此,在从二进制转换为十进制时,我没有足够的内存来存储中间结果。正如我上面写的,我对那个小数不感兴趣,我只想打印结果。但是,我没有看到任何其他方法来解决它;-( 有没有从二进制“打印”的解决方案?
或者,也许,我应该使用像 BCD(二进制编码十进制)这样的东西来表示中间表示?我真的不想使用它,因为它不是那么跨平台(英特尔的处理器具有内置功能,但对于其他我需要编写自己的实现)。
我很高兴听到你的想法。谢谢你的耐心。
语言:C.
perl - 如何从 Perl bignum 中获取数字?
我在 Perl 中有一个非常大的数字。我使用“bignum”。如何从这个大数字中提取单个数字。例如,如果我有一个这样的数字,以及从末尾得到第三个数字的内容:
1029384710985234058763045203948520945862986209845729034856
-> 8
c++ - 在 C++ 中解决 Project Euler 问题的最佳 bignum 库?
我还是个学生,我觉得 Euler 项目很有趣。
有时这个问题需要比原始类型更大的计算。我知道你可以实现它,但我懒得这样做,
所以我尝试了几个库,
MAPM :: 非常好的性能,但它只提供大浮点数,可以检查它是否为整数。非常好接受输入,但很难提供输出,并且使用 Visual C++ 2008 express 像魔术一样编译。
bigint :: 很小的一个,但需要对许多部分进行重新设计。使用非常简单,但功率非常有限,与其他相比非常慢。只有大整数。
ttmath :: 迄今为止我尝试过的最漂亮的一个!只需包含一些文件,您就拥有令人难以置信的力量/简单性。像 Visual C++ 2008 express 中的魔术一样编译。它很快,因为它提供了固定长度的数字。它是使用 C++ 中的元编程构建的。我看到的唯一缺点是,数字在运行时的长度不是任意的,但是在编写代码时你可以很容易地拥有 1024K 的数字,
它提供了三种类型:有符号、无符号和浮点数。
我尝试在VC2008 express下编译gmp,但是失败了!我知道它是最好的,但对于初学者来说在 VC2008 express 下编译并不容易,如果你指出一个在 VC 下编译 gmp 的教程,我也很感激。
编辑 :: 如果您知道如何使用 VC 2008 编译 gmp,请向我解释并获得赏金 :)
EITD :: 看来我没有使用正确的术语,所以这里是用于 Windows 的神奇 GMP!适用于 VC 2008 :) MPIR
java - 埃拉托色尼筛法问题:处理非常大的数字
我正在使用 Eratosthenes 筛解决 Sphere 的 Online Judge Prime Generator 。
我的代码适用于提供的测试用例。但是..正如问题明确指出的那样:
输入以单行中的测试用例数量 t (t<=10) 开始。在接下来的 t 行中的每一行中,都有两个数字 m 和 n ( 1 <= m <= n <= 1000000000, nm<=100000),由空格分隔。
我知道该方法Integer.parseInt()
在处理非常大的数字时会引发异常,并且在线法官指示正在引发异常,因此我将代码中的每个案例都更改parseInt
为parseLong
。
嗯,这件事在 Netbeans 6.5 上运行良好,m 和 n 的值很小。
输入+输出:
但是 JCreator LE 是这样说的:
这里我没有整数溢出,但是为什么 jcreator 会抱怨呢?
考虑到边界测试用例,该程序也在 Netbeans 上内爆:
我该如何处理问题陈述中那些巨大的整数?
编辑:根据建议,我已经更改了 BitSet 的布尔数组,但我仍然得到OutOFMemoryError
:
输入输出:
c - 当没有数据类型可以容纳完整数字时将十六进制转换为十进制
我正在使用 C 中的 PIC 微处理器。它是 16F,所以它不能保存大于 32 位的整数(无符号int32
是可用的最大数据大小)
从阅读器那里,我收到一个 5 字节的 ID 代码。要传输它,我必须逐位编码为 BCD。我无法将其冲刺成字符串,因为它大于数据大小,并且无法处理它。我不能划分它,因为没有为它定义任何操作。
我想不出任何可能的解决方案,以前有没有人处理过这个问题?
编辑:
我收到一系列 5 个字节的数字:
FF-FF-FF-FF-FF
我需要将其转换为十进制
0123456789012
(13 位,十进制长度为 256^5)通过 RS232 发送。第二个函数(获取 ASCII,然后发送)我已经让它工作了,但我需要完整数字的字符串表示,然后才能对它做任何事情。