BigNums 实施如何工作?

2023-11-27

我想知道 BigInt 和其他类似的东西是如何实现的。我试图查看 JAVA 源代码,但对我来说全是希腊语和拉丁语。 您能否用文字向我解释一下该算法 - 没有代码,以便我了解当我使用 JAVA API 中的某些内容时我实际使用的是什么。 问候


从概念上讲,这与手动进行任意大小算术的方式相同。您有一个值数组之类的东西,以及用于该数组的各种操作的算法。

说你想添加100 to 901。您从两个数字作为数组开始:

 [0, 1, 0, 0]
 [0, 9, 0, 1]

当您添加时,您的加法算法从右侧开始,采用0+1, 给予1, 0+0, 给予0,以及——现在是棘手的部分——9+1 gives 10,但现在我们需要进位,所以我们在下一列上加 1,然后把(9+1)%10进入第三列。

当您的数字变得足够大时(在本例中大于 9999),那么您必须以某种方式分配更多空间。

当然,如果您将数字存储在reverse order.

实际的实现使用完整的单词,因此模数实际上是 2 的某个大幂,但概念是相同的。

高德纳 (Knuth) 对此有一个非常好的部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BigNums 实施如何工作? 的相关文章

  • 大数源码解析

    大数的功能实现可以不用做追究 知道用处就好的 感兴趣的可以看源码研究 构造器就不展示了 BigInteger public class BigInteger extends Number implements Comparable
  • Java高级-包装类、BigDecimal和BigInteger

    基本数据类型和包装类 基本数据类型和包装类如下所示 基本类型 包装类 int java lang Integer 父类为java lang Number long java lang Long 父类为java lang Number dou
  • PHP JSON 大整数

    我正在使用 json encode 将我的 php 多维数组转换为输出 json 通常 此函数会将所有值转换为字符串 为了确保整数值作为整数值发送到 javascript 我使用数字检查 json json encode data JSON
  • Bigint(bigbit)库

    我正在寻找一个 C 类 库 它提供 1024 位和更大的整数和位操作 例如 位移位 按位或 与 定位第一个零位 速度至关重要 因此必须通过一些 SIMD 汇编来实现 有几个 包括GMP 但就速度而言 最好的可能是TTmath TTmath
  • 如何在不进行模运算的情况下将 Java BigInteger 提高到 BigInteger 的幂?

    我正在做一些大整数计算 我需要将一个 BigInteger 提高到另一个 BigInteger 的幂 pow 方法执行我想要的操作 但采用 int 值作为参数 modPow 方法采用 BigInteger 作为参数 但我不希望答案与我尝试计
  • 在java中计算比int和long更大的阶乘?

    在这里和谷歌搜索了几天 并询问了我的编程朋友 不幸的是 我仍然不明白如何更改我的代码 我的程序计算给定数字的阶乘 然后它提供一个数字 表示阶乘答案包含多少位数字 然后将这些数字的值相加得出总数 我的程序适用于 1 之间的任何数字 和 31
  • 具有 64 位整数的 PyQt4 spinbox

    是否可以修改 PyQt spinbox 以处理大于 32 位的整数 2147483648 2147483647 我知道可以用 C 编写一个具有 64 位 int 数据类型的新旋转框 但这会变得复杂 您可以使用以下命令获得值大于 32 位的旋
  • 分配给 BigInteger 数组中的 an 元素时出错

    这是我的代码 当我创建数组时它显示错误BigInteger并尝试赋值 package test import java math import java lang import java util public class Test pub
  • Java 与 C#:BigInteger 十六进制字符串产生不同的结果?

    问题 Java 中的这段代码 BigInteger mod new BigInteger 86f71688cdd2612ca117d1f54bdae029 16 产生 在java中 数字 17939950581097697199836478
  • 我应该使用哪种数据类型来存储 C 语言中的变量 10^200?

    C语言中如何处理10 200或更大的整数 即使我使用 long long 也不起作用 那我该怎么办呢 我听说过大整数 但不知道如何使用它 据我所知 它是 C 的库函数 但我正在使用 C 除了大整数之外 还有其他方法可以处理这么大的整数吗 有
  • 去打印大量

    我目前正在做 Go Lang 教程 准确地说是 数字常量 示例代码以以下语句开头 const Create a huge number by shifting a 1 bit left 100 places In other words t
  • 如何在 Java 中将 BigInteger 值转换为十六进制

    我正在制作一个Java程序 我有一个 BigInteger 数字 我需要将其转换为十六进制 我尝试了以下代码 String dec null System out println Enter the value in Dec Buffere
  • 将 Java BigInteger 用于巨大位掩码的性能影响

    我们面临着一个有趣的挑战 我们必须控制对驻留在 容器 中的数据的访问 可能会有数十万个 垃圾箱 对每个垃圾箱的访问是单独控制的 但限制可能而且可能会重叠 我们正在考虑为每个 bin 分配位掩码中的一个位置 1 2 3 4 等 然后 当用户登
  • 为什么有 BigInteger(String) 而没有 BigInteger(long)?

    在 Java 中 要将 String 转换为 BigInteger 可以使用构造函数new BigInteger String 但要转换 int long 你可以使用工厂函数BigInteger valueof long 这是为什么 Mor
  • bigint 通过 PDO 截断?

    我遇到了将大整数存储在 a 中的问题BIGINT通过 PDO 在 MySQL 上列 如果我运行这个测试 number 30123456789 var dump number prints string 11 30123456789 new
  • BigIntegers、gcd、模逆来查找公钥

    所以 我使用 java 来查找 RSA 密码的公钥 现在我不确定我在做什么 也不确定它是否正确 我有公钥的信息 C 5449089907 n p q 8271344041 q 181123 p n q 45667 d 53 phi n p
  • 具有非常大的数字的十六进制到 int C#

    我有一个 256 个字符长的字符串 其中包含一个十六进制值 EC851A69B8ACD843164E10CFF70CF9E86DC2FEE3CF6F374B43C854E3342A2F1AC3E30C741CC41E679DF6D07CE6
  • BigInteger 数字的实现和性能

    我用 C 编写了一个 BigInteger 类 它应该能够对任何大小的所有数字进行运算 目前 我正在尝试通过比较现有算法并测试它们最适合哪些位数来实现非常快速的乘法方法 但我遇到了非常意外的结果 我尝试进行 20 次 500 位数字的乘法
  • BigInteger:以可扩展的方法计算小数位数

    我需要计算 a 的小数位数BigInteger 例如 99回报2 1234回报4 9999回报4 12345678901234567890回报20 我需要这样做for a BigInteger with 184948小数位及更多 我怎样才能
  • 计算 a*a mod n 且不溢出

    I need to calculate a a mod n but a is fairly large resulting in overflow when I square it Doing a n a n n doesn t work

随机推荐

  • ionic 3、延迟加载选项卡组件

    我正在尝试创建一个具有延迟加载功能的 ionic 3 选项卡应用程序 而无需导入组件 在我的 app component ts 中 rootPage string Tabs 在 tabs html 中
  • 两台不同计算机上的不同互操作引用不起作用

    当我添加引用时Microsoft Office Interop Excel在我的计算机上 Visual Studio 将其添加到项目文件中
  • 配置后无法创建变体“android-lint”

    我正在将项目的 Gradle 插件从 2 1 2 更新到 3 1 0 但是 gradle 在构建时开始抛出错误 配置后无法创建变体 android lint app debugRuntimeElements 已解决 项目级别等级 Top l
  • 如何检查有多少个 Google Cloud Run 容器实例正在运行?

    Google Cloud Run 让我可以设置并发性对于给定的容器 这是在新容器启动之前它将服务的并发请求数 我如何实际检查在任何给定时间有多少容器正在运行 Web 界面提到了哪些服务正在运行 但没有提到有多少服务 当我这样做时也是如此gc
  • 在单个活动中使用多个片段

    我想使用开发一个Android应用程序Honey Comb 3 0我想在其中显示一个列表 单击列表中的任何项目应该以片段的形式在该列表项目旁边显示另一个列表 任何人都可以提供示例代码来解决这个问题吗 提前致谢 看看 Google 的 Ret
  • iOS 11 - 核心数据 - UIColor 不再用作可转换属性

    我使用可转换属性将颜色存储在二进制核心数据存储中 并将属性的类指定为 UIColor 如下所示 import CoreDataEntity CoreDataClass h import
  • KoinAppAlreadyStartedException:Koin 应用程序已启动

    使用 koin 2 0 1 进行 Android 测试 尽管每个测试单独通过 但无法一起测试所有 3 个测试 class NumberFormatterUtilImplTest KoinTest private val numberForm
  • 如何向 iOS WebApp (PWA) 发送推送通知?

    我有 WordPress 网站并基于 WordPress 创建自己的 PWA 现在我想在我的网络应用程序上使用推送通知 如何向我的 ios 用户发送推送通知 在android pwa中已解决 不幸的是 推送通知在 IOS 上尚不可用 目前
  • 为什么这个生成器表达式函数比循环版本慢?

    我一直根据生成器表达式往往比普通循环更有效的理论进行操作 但后来我遇到了以下示例 编写一个给出数字的函数 N 以及一些因素 ps 返回下面所有数字的总和N是至少一个因数的倍数 这是循环版本和较短的生成器表达式版本 def loops N p
  • 可以转换的 CSS 属性列表

    我正在研究 CSS 转换 特别是可以转换哪些 CSS 属性以及它们各自的浏览器支持 努力在谷歌上找到任何全面的东西 我相信并非所有 CSS 属性都是过渡性的 例如 background 不是 但是background color and b
  • 多种输出格式的设计模式

    我有一个类结构 它 在内部 表示我希望输出到文件的数据 一些成员变量对于数据类来说是私有的 这样它就可以进行自我管理并阻止出现问题 然后我希望将这些数据输出为多种文件格式 我可以做类似的事情 savefile formatA DataCla
  • 请求“OPTIONS /logout”与“POST /logout”不匹配

    我正在通过分解来研究Spring Cloud和Spring OAuth2此 GitHub 示例中的三个互连应用程序 当我打开 oauth revoke token端点在authserver app然后从ui app with a http
  • 在 Haskell 中添加列表的惯用方法是什么?

    假设我想在 Haskell 中添加两个列表 最常用的方法是什么 这就是我所做的 addLists Integral a gt a gt a gt a addLists xs ys map add zip xs ys where add x
  • 如何CSS:根据内部HTML选择元素[重复]

    这个问题在这里已经有答案了 a href example1 com innerHTML1 a a href example2 com innerHTML2 a a href example3 com innerHTML3 a 我想基于内部
  • Python 比较运算符优先级

    Python中的所有比较操作都具有相同的优先级 低于任何算术 移位或按位操作的优先级 因此 和 True 与第二个表达式不同 gt gt gt 1 lt 0 False True gt gt gt 1 lt 0 False False 我希
  • 飞行路线信息屏幕状态是未来,而不是缺失

    由于一些公司特定的功能 我需要换入和换出 有时当我稍后运行 info 或 migrate 时 我会迁移一些不存在于 sql 目录中的脚本 不过 我刚刚注意到它的显示方式存在不一致之处 Version Description Installe
  • Android:ViewGroup,如何拦截MotionEvent然后分派到目标或按需吃掉它?

    假设有一个具有多个子项的 ViewGroup 至于这个 ViewGroup 我想让它管理其所有子项的所有 MotionEvent 这表示 VG 将1 能够在将所有事件分派到目标 子级 之前拦截所有事件2 VG首先会消费该事件 并判断是否进一
  • GCC makefile依赖生成路径

    我用 MMGCC 中用于生成对象的 makefile 依赖项的标志 makefile 简要如下所示 include autodep TARGET build OBJECTS CC shared o OBJECTS CC MM SOURCES
  • 如何从多个源文件创建 MSBuild 内联任务

    我有几个 CS 文件 一个 DLL 项目 全部位于一个目录中 其中的类之一扩展了 ITask 现在 如何从一个源文件创建内联任务很容易并有记录 但是是否可以从多个源文件执行此操作 我无法将编译和使用 DLL 作为一项任务 并且我希望不必将所
  • BigNums 实施如何工作?

    我想知道 BigInt 和其他类似的东西是如何实现的 我试图查看 JAVA 源代码 但对我来说全是希腊语和拉丁语 您能否用文字向我解释一下该算法 没有代码 以便我了解当我使用 JAVA API 中的某些内容时我实际使用的是什么 问候 从概念