bignum相关内容

如何在 C++ 中实现大 int

我想在 C++ 中实现一个大 int 类作为编程练习——一个可以处理大于 long int 的数字的类.我知道已经有几个开源实现,但我想自己编写.我正在尝试了解正确的方法是什么. 我了解一般策略是将数字作为字符串获取,然后将其分解为较小的数字(例如单个数字),并将它们放入数组中.此时,实现各种比较运算符应该相对简单.我主要关心的是如何实现加法和乘法. 我正在寻找一种通用的方法和建议,而 ..
发布时间:2022-01-30 16:49:01 C/C++开发

Int 和 Integer 有什么区别?

在 Haskell 中,Int 和 Integer 有什么区别?答案记录在哪里? 解决方案 “整数"是任意精度类型:它将保存任何数字不管多大,到极限你机器的内存……这意味着你从来没有算术溢出.在另一手这也意味着你的算术是比较慢.Lisp 用户可以在这里识别“bignum"类型. “Int"是更常见的 32 位或 64 位整数.实现方式不同,虽然它保证在至少 30 位. 来源 ..
发布时间:2022-01-14 14:26:58 其他开发

GCC __attribute__((mode(XX)) 实际上做了什么?

这源于今天早些时候关于 bignum 库和 gcc 特定于 C 语言的 hacks 的问题.具体来说,使用了这两个声明: typedef unsigned int dword_t __attribute__((mode(DI))); 在 32 位系统上和 typedef unsigned int dword_t __attribute__((mode(TI))); 在 64 位系统上. ..
发布时间:2022-01-13 18:08:32 其他开发

如何处理javascript中的大数字

我正在寻找一个处理真正(长、大、巨大、风暴)数字的数学解决方案.我还没有找到任何东西,但我不想认为这个问题目前还没有解决.我正在寻找一个简单的数字解决方案,例如 Microsoft Excel Precision(30 位小数)或 BigInteger (Java) 解决方案.当然是在 Javascript 中. 解决方案 在为 ElGamal 加密实现寻找大整数库时,我测试了几个库,结果 ..
发布时间:2022-01-09 09:57:28 前端开发

x86 上两个 128 位整数的高效乘法/除法(非 64 位)

编译器:MinGW/GCC 问题:不允许使用 GPL/LGPL 代码(GMP 或任何与此相关的 bignum 库,对于这个问题来说太过分了,因为我已经实现了该类). 我已经构建了自己的 128 位 固定大小的大整数类(旨在用于游戏引擎,但可以推广到任何用例),并且我发现了当前乘法的性能并且除法运算非常糟糕(是的,我已经对它们进行了计时,见下文),并且我想改进(或更改)执行低级数字运算的算法 ..
发布时间:2022-01-06 12:55:33 C/C++开发

任意精度算术说明

我正在尝试学习 C,但遇到了无法处理非常大的数字(即 100 位、1000 位等)的问题.我知道存在可以执行此操作的库,但我想尝试自己实现它. 我只想知道是否有人已经或可以提供对任意精度算术的非常详细、简化的解释. 解决方案 将数字视为较小部分的充分存储和算法完全是问题.假设您有一个编译器,其中 int 只能是 0 到 99,并且您想处理最大为 999999 的数字(为了简单起见,我 ..
发布时间:2021-12-17 14:28:15 其他开发

整数和整数有什么区别?

在 Haskell 中,Int 和 Integer 之间有什么区别?答案记录在哪里? 解决方案 "Integer" 是任意精度类型:它将容纳任何数字没有不管有多大,到极限你机器的内存....这意味着你从来没有算术溢出.在另一手也意味着你的算术是比较慢.Lisp 用户可以在这里识别“bignum"类型. “Int"是更常见的 32 位或 64 位整数.实现方式各不相同,虽然它保证在 ..
发布时间:2021-12-14 11:46:26 其他开发

如何在 C++ 中实现 big int

我想在 C++ 中实现一个 big int 类作为编程练习——一个可以处理比 long int 大的数字的类.我知道已经有几个开源实现,但我想自己写一个.我正在尝试了解正确的方法是什么. 我知道一般的策略是将数字作为字符串获取,然后将其分解为较小的数字(例如单个数字),然后将它们放入数组中.此时实现各种比较运算符应该比较简单.我主要关心的是如何实现加法和乘法之类的东西. 我正在寻找一种 ..
发布时间:2021-12-01 15:43:08 C/C++开发

在 PHP 中处理大数

使用Fermat Primality Test 具有大量(100,000+),它需要一些非常大的计算. 当我将两个大数(例如:62574 和 62574)相乘时,PHP 似乎将结果转换为浮点数.获取它的模值会返回奇怪的值. $x = 62574 * 62574;var_dump($x);//float(3915505476) ... 正确var_dump($x % 104659);//in ..
发布时间:2021-12-01 11:09:18 PHP

有没有优化两个BigNums的乘法的好方法?

我有一个类BigNum: struct BigNum{矢量数字;BigNum(向量数据){for(int item : data){d.push_back(item);}}int get_digit(size_t 索引){返回(索引 >= d.size() ? 0 : d[index]);}}; 我正在尝试编写代码来将两个 BigNum 相乘.目前,我一直在使用传统的乘法方 ..
发布时间:2021-08-31 19:11:56 C/C++开发

C中的大数字

我正在用C实现RSA.我使用的是"unsigned long long int"(上限:18446747007370955115). 当我不得不计算诸如 4294967296 ^ 2 之类的问题时,问题就来了.应该是 18446744073709551616 ,但我却得到 0(溢出).我的意思是,我需要计算结果超出上限的东西. 我尝试使用float,double,long double ..
发布时间:2021-05-08 19:56:37 其他开发

如何在Perl中大量打印?

在Windows 32位平台上,我必须阅读一些数字,这是出乎意料的,其值可以高达99,999,999,999,但不能超过。尝试 sprintf(“%011d”,$ myNum)会产生一个溢出:-2147483648。 我不能使用BigInt模块,因为在这种情况下,我应该深刻地更改代码。我不能将格式作为字符串 sprintf(“%011s”,$ numero)来管理,因为减号处理不正确。 ..
发布时间:2020-06-06 20:08:17 其他开发

长<-> str二进制转换

是否存在仅将很长的数字转换为字符串就复制数据的库? 这些单行太慢了: def xlong(s): 返回总和([e(c)> 8)如果x else'' 打印xlong('abcd'* 1024)%666 打印xstr(13 ..
发布时间:2020-06-06 20:08:15 Python

如何在Perl中计算双阶乘?

鉴于Wikipedia对 Double Factorial 的讨论,有人可以建议我在哪里找到这是Perl的bignum版本,还是建议如何编写? 解决方案 Perl将处理您的C编译器可以处理的一切,对于更大的内容,您应该使用 Math :: BigInt 。 我建议您阅读 perlnumber 。 双阶乘(在perl高尔夫中): sub f {$ _ [0]& $ _ [ ..
发布时间:2020-06-06 20:08:09 其他开发