如何在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个任意大小的整数? 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 重载<<的返回值

    include
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 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