如何在C++中添加2个任意大小的整数?

2023-12-06

我想在 C++ 中添加 2 个任意大小的整数。我该怎么做呢?


Here's an example showing how to use the OpenSSL bignum implementation for arbitrary-precision arithmetic. My example does 264 + 265. I'm using Linux.

#include <cstdio>
#include <openssl/crypto.h>
#include <openssl/bn.h>

int main(int argc, char *argv[])
{
        static const char num1[] = "18446744073709551616";
        static const char num2[] = "36893488147419103232";

        BIGNUM *bn1 = NULL;
        BIGNUM *bn2 = NULL;

        BN_CTX *ctx = BN_CTX_new();

        BN_dec2bn(&bn1, num1); // convert the string to BIGNUM
        BN_dec2bn(&bn2, num2);

        BN_add(bn1, bn1, bn2); // bn1 = bn1 + bn2

        char *result_str = BN_bn2dec(bn1);  // convert the BIGNUM back to string
        printf("%s + %s = %s\n", num1, num2, result_str);
        OPENSSL_free(result_str);

        BN_free(bn1);
        BN_free(bn2);
        BN_CTX_free(ctx);

        return 0;
}

它产生以下输出:

18446744073709551616 + 36893488147419103232 = 55340232221128654848

您需要随开发库一起安装 OpenSSL。如果您有 Linux,请从包管理器安装开发库并链接到libcrypto.so.

g++ bignum.cpp -o bignum -lcrypto

或者下载 OpenSSL 源代码并构建静态库libcrypto.a并与其静态链接。

g++ bignum.cpp -o bignum -I./openssl-1.0.0/include ./openssl-1.0.0/libcrypto.a

在 Windows 上,您需要从Windows端口OpenSSL 的。

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

如何在C++中添加2个任意大小的整数? 的相关文章

  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • asp.net 文本框文本模式数字,仅允许数字

    我只是想知道 ASP NET 中是否有一种方法只允许文本框中的数字textmode number 当我使用这个时
  • 使用具有现有访问令牌的 Google API .NET 客户端

    用例如下 移动应用程序正在通过 Google 对用户进行身份验证 并且在某些时候 我们需要将用户的视频发布到他的 YouTube 帐户 出于实际原因 实际发布应该由后端完成 已经存储在那里的大文件 由于用户已经通过应用程序的身份验证 因此应
  • 向 ExpandoObject 添加方法时,“关键字 'this' 在静态属性、静态方法或静态字段初始值设定项中无效”

    我尝试向 ExpandoObject 添加一个动态方法 该方法将返回属性 动态添加 给它 但它总是给我错误 我在这里做错了什么吗 using System using System Collections Generic using Sys
  • 从 MVC 迁移到 ASP.NET Core 3.1 中的端点路由时,具有角色的 AuthorizeAttribute 不起作用

    我正在尝试将我的项目从 UseMVC asp net core 2 2 兼容样式 升级到 UseEndpoint Routing 并且我的所有请求都被重定向到我的验证失败页面 它与声明有关 如果我删除 Authorize Roles Adm
  • C++:重写已弃用的虚拟方法时出现弃用警告

    我有一个纯虚拟类 它有一个纯虚拟方法 应该是const 但不幸的是不是 该接口位于库中 并且该类由单独项目中的其他几个类继承 我正在尝试使用这个方法const不会破坏兼容性 至少在一段时间内 但我找不到在非常量方法重载时产生警告的方法 以下
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • 从多个类访问串行端口

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 当“int”处于最大值并使用 postfix ++ 进行测试时,代码定义良好吗?

    示例 未定义行为的一个示例是整数溢出的行为 C11dr 3 4 3 3 int溢出是未定义的行为 但这是否适用于存在循环的以下内容 并且不使用现在超出范围的副作用i 特别是 这是否后缀增量规格帮助 结果的值计算在副作用之前排序 更新操作数的
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • 当前的 x86 架构是否支持非临时加载(来自“正常”内存)?

    我知道有关此主题的多个问题 但是 我没有看到任何明确的答案或任何基准测量 因此 我创建了一个处理两个整数数组的简单程序 第一个数组a非常大 64 MB 第二个数组b很小 无法放入 L1 缓存 程序迭代a并将其元素添加到相应的元素中b在模块化
  • 为什么拆箱枚举会产生奇怪的结果?

    考虑以下 Object box 5 int int int box int 5 int nullableInt box as int nullableInt 5 StringComparison enum StringComparison
  • strcmp 给出分段错误[重复]

    这个问题在这里已经有答案了 这是我的代码给出分段错误 include
  • 双精度类型二维多维数组的 pinvoke 编组作为 c# 和 c++ 之间的输入和输出

    我有以下我正在尝试解决的双物质类型的 2d 多维数组的 c 和 c pinvoke 编组 我已经查看了以下热门内容以获得我目前拥有的内容使用双精度数组进行 P Invoke 在 C 和 C 之间编组数据 https stackoverflo
  • 带重定向标准流的 C# + telnet 进程立即退出

    我正在尝试用 C 做一个 脚本化 telnet 项目 有点类似于Tcl期望 http expect nist gov 我需要为其启动 telnet 进程并重定向 和处理 其 stdin stdout 流 问题是 生成的 telnet 进程在
  • Googletest:如何异步运行测试?

    考虑到一个包含数千个测试的大型项目 其中一些测试需要几分钟才能完成 如果按顺序执行 整套测试需要一个多小时才能完成 通过并行执行测试可以减少测试时间 据我所知 没有办法直接从 googletest mock 做到这一点 就像 async选项
  • 匿名结构体作为返回类型

    下面的代码编译得很好VC 19 00 23506 http rextester com GMUP11493 标志 Wall WX Za 与VC 19 10 25109 0 标志 Wall WX Za permissive 这可以在以下位置检

随机推荐

  • Laravel 调度程序日志

    哪里做Laravel 存储调度程序的日志也就是说 如果我们设置一个调度程序 间隔 2 小时 并且它已在中午 12 点执行 那么它应该在下午 2 点执行吗 Laravel 如何知道调度程序不应该在下午 1 点执行 我遇到了两种存储日志的方法
  • 需要有关如何实现 js/css 版本控制的建议

    所以我正在实现这个 js css 版本控制方案 我基本上附加了 js css 文件的校验和 我想到的策略是 基本上获取这个校验和值 然后计算文件的校验和 我认为可能来自缓存 如果它们匹配 则客户端拥有最新的文件 如果不匹配 则客户端拥有最新
  • 无法删除 mPDF 中的 PHP 通知

    我正在使用mPDF 库直接从 HTML 输出生成 PDF 文档 问题是这个 mPDF 库是按原样编写的 并且它生成了许多通知 未定义的索引 未定义的偏移量等 我尝试了一切来停止输出它们 但还没有任何帮助 我试着把error reportin
  • 数组搜索中的通配符

    是否可以在 array search 中使用通配符 我想搜索字符串的一部分 然后 类似的东西 带星号 print pos array search abitofastring vars myarray unset vars myarray
  • 针对一组 Android 项目(包括库)的 Gradle 构建

    我有 2 个 Android 应用程序 带有 5 个 Android 模块 Android 库项目 总共 7 个 Eclipse 项目 我想为他们启用 Gradle 构建 我添加了build gradle在根文件夹中并列出了所有项目sett
  • 使用新的 CSS 文件覆盖当前网站的 CSS 文件

    我的网站当前有 3 个 CSS 文件 它们会自动包含在网站中 并且我确实这样做not可以访问源代码 即索引 html网站的但我确实有访问我网站的 CSS 文件 我正在尝试使用我自己的样式来覆盖我的网站 CSS 文件 并创建一个新的 CSS
  • 在 C# 中查找字符串中的所有模式索引

    如何使用 C 查找字符串中模式的所有索引 例如我想找到所有 像这样的字符串中的模式索引45 78 56 JK01UU string pattern string sentence 45 78 56 J K01UU IList
  • 在Java中如何将数组字符向右移动?

    这就是我所拥有的 class encoded public static void main String args String s1 hello char ch s1 toCharArray for int i 0 i
  • 从控制台调用 Javascript 函数

    在 Chrome 的 JavaScript 控制台中 如何调用属于我正在查看的网页中包含的 js 文件的函数 如果它在封闭物内 我很确定你不能 否则你就这样做functionName 并按回车键
  • 不同类型的迭代器

    还有其他类型的迭代器吗 有显示不同类型迭代器的链接吗 我唯一知道的是 NET 的 IEnumerable 特别是对于 C 但也欢迎所有其他的 迭代器在不同的语言中有很多不同的东西 不仅仅是 C 迭代器 的一个明显例子是 C 迭代器 它基本上
  • Python修改函数内的列表

    我试图让函数通过传递列表的引用来修改列表 下面的程序显示 当我将列表传递到函数中时 仅生成一个局部变量 有没有什么方法可以在函数中从该列表中选择一些成员 谢谢 def func list1 list1 list1 2 print list1
  • 使用 python 解析非常大的 xml 文件时出现问题

    我有一个很大的 xml 文件 大约 84MB 其形式如下
  • 如何在 ul 下拉菜单中显示选定的菜单项

    我有一个下拉菜单 显示字体颜色供用户选择 目前 下拉列表显示 样式 但是我希望菜单标题显示当前选择的值 这是代码 HTML div class dropdown div
  • Objective-C 中的 HTTP Post 请求不起作用

    我正在编写一个 HTTP Post 请求 但由于某种原因 参数没有正确添加 而且我一生都无法弄清楚我做错了什么 这是我所拥有的 NSMutableURLRequest request NSMutableURLRequest alloc in
  • VBA - 从关闭的 Excel 工作簿中检索数据

    我正在尝试创建一个 VBA 脚本来从四个不同的工作簿收集数据 目前 我只是使用一本工作簿测试代码 但当我尝试获取数据时收到错误 虽然我想在不打开四个工作簿的情况下检索数据 但我需要打开它们才能找到最后一行数据 这是我当前的代码 Public
  • SilverStripe 4.1 - SS_DEFAULT_ADMIN_USERNAME 和 PASSWORD 不受尊重

    我有一个在 Ubuntu Vagrant VM 上运行的 SilverStripe 4 1 站点 从 3 4 升级 我有以下内容 env file Default Admin SS DEFAULT ADMIN USERNAME admin
  • 如何从 STDIN 将行导入到 Postgresql? [复制]

    这个问题在这里已经有答案了 在 Python 中 我有以下命令可以将行批量加载到 Postgresql 而不使用文件 import csv import subprocess mylist keys name fred name mary
  • video-js 自定义字体在 Firefox 中不起作用

    使用 Firefox 查看这里 我有 22 0 http www jamhouse com au 您会看到 video js 自定义字体不起作用 在 Chrome 中运行良好 任何想法将不胜感激 Watto Firefox 有极其严格的跨域
  • 如何在Java中获取.(点)之前和/(最后一个)斜杠之后的字符串

    我有一个像这样的字符串 core pages viewemployee jsff 从这段代码中 我需要获取 viewemployee 我如何使用 Java 获得这个 假设您将该字符串保存在名为的变量中myString String mySt
  • 如何在C++中添加2个任意大小的整数?

    我想在 C 中添加 2 个任意大小的整数 我该怎么做呢 Here s an example showing how to use the OpenSSL bignum implementation for arbitrary precisi