高精度加法c语言,C语言实现高精度加法

2023-11-12

免费资源网 - https://freexyz.cn/

本篇为高精度加法的计算,接下来我还会去写高精度乘法的计算。

一、高精度运算的概念

高精度运算其实就是参与运算的数完全超出基本数据类型所能表示的范围的运算(例如int型范围就是 - 2147483648 ~+ 2147483647)

所以如果想求较大数的话就要创建新的数据类型

二、数据类型的选取

我选择的是int型数组,这样比较便于计算和理解

三、代码

其中a和b我是通过随机数来赋值

//author summer_awn

//date 2017/6/20

#include

#include

#define lenth_a 200

#define lenth_b 200

using namespace std;

//计算a+b

void main() {

srand((unsigned)time(NULL));

int * a = new int[lenth_a];//数组a ******

for (int i = 0; i < lenth_a; ++i) {

a[i] = rand() % 10;

}

cout << "a=";

for (int i = lenth_a - 1; i >= 0; --i) {//输出a

cout << a[i];

}

cout << endl;

cout << endl;

int * b = new int[lenth_b];//数组b ******

for (int i = 0; i < lenth_a; ++i) {

b[i] = rand() % 10;

}

cout << "b=";

for (int i = lenth_b - 1; i >= 0; --i) {//输出b

cout << b[i];

}

cout << endl;

cout << endl;

int lenth_result;//结果的长度en

if (lenth_a > lenth_b) lenth_result = lenth_a + 1;

else lenth_result = lenth_b + 1;//通过一个判断来确定结果的长度

int * a2 = new int[lenth_result];//a2***********

int * b2 = new int[lenth_result];//b2***********

memcpy(a2, a, sizeof(int)*lenth_a);//

memset(a2 + lenth_a, 0, sizeof(int)*(lenth_result - lenth_a));

memcpy(b2, b, sizeof(int)*lenth_b);

memset(b2 + lenth_b, 0, sizeof(int)*(lenth_result - lenth_b));

delete(a);

delete(b);

int * result = new int[lenth_result];//result*********

result[0] = a2[0] + b2[0];

for (int i = 1; i < lenth_result - 1; ++i) {

result[i] = a2[i] + b2[i] + result[i - 1] / 10;

result[i - 1] = result[i - 1] % 10;

}

result[lenth_result - 1] = result[lenth_result - 2] / 10;

result[lenth_result - 2] = result[lenth_result - 2] % 10;

delete(a2);

delete(b2);

cout << "结果=";

for (int i = lenth_result - 1; i >= 0; --i) {

cout << result[i];

}

cout << endl;

system("pause");

delete(result);

}

四、结果

结果有截图,未验证(因为懒)

dcc192c5ef7af613b1378dd70ba22a93.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

免费资源网 - https://freexyz.cn/

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

高精度加法c语言,C语言实现高精度加法 的相关文章

随机推荐

  • iso文件添加服务器,服务器挂载本地iso文件

    RHEL6 3配置文件共享 2 autofs服务 在上篇博文中我们介绍了利用NFS服务设置文件共享 在客户端必须要先将服务器端的NFS共享目录挂载到本地 然后才能使用 其实在Linux系统中还为我们提供了另外一种更为简单的使用NFS共享的方
  • Java对象深拷贝的几种方式

    对象拷贝 项目开发过程中很多时候需要进行对象复制 可是有的时候会发生复制后的对象 在原对象改变后也相应发生改变 这种时候就有问题了 所以很有必要了解对象的深拷贝 以及深拷贝的几种方式 new 对象 手动 new 新的对象 一个属性一个属性的
  • 掌财社:Flask怎么实现注册登录项目?

    注册和登录功能是绝大多数web应用都需要实现的功能 是相当基础的功能模块 注册登录功能实现需要注意的地方也有很多 今天小编带来了一篇flask实现注册登录功能的项目的简单实现的文章 希望能给正在学习flask的小伙伴一点帮助 本文主要介绍了
  • 调试共享几何图形池

    没有这一节的资料 但是代码该调试到这里了 随意调试着玩吧 环境变量本机都没有设置 看这个意思 似乎是只需要一个几何体 所有的瓦片用类似于matrixTransform gt addChild node 的方式 看看创建 上一层 为什么是第0
  • 买卖股票的最佳时机含手续费--贪心算法

    LeetCode 买卖股票的最佳时机含手续费 给定一个整数数组 prices 其中第 i 个元素代表了第 i 天的股票价格 非负整数 fee 代表了交易股票的手续费用 你可以无限次地完成交易 但是你每笔交易都需要付手续费 如果你已经购买了一
  • 利用Google翻译实现网站国际化——js插件

    文章描述了很多作者的思路 显得繁琐和冗余 若无兴趣请直接下载资源 查阅最终解决方案 最终解决方案 代码静态化已经全部完成 包括面板语言文件 已添加完备的注释 请直接查阅 下载插件js谷歌翻译插件 示例请使用 本地静态资源 html 需要修改
  • Spring AutowireCapableBeanFactory

    Spring AutowireCapableBeanFactory接口的使用小结 Spring的ioc容器中有一个接口叫AutowireCapableBeanFactory 我们从名字中可以看出 具有自动装配Bean的能力 而且这里笔者先透
  • 刷脸支付是万亿级支付模式新趋势

    随着5G时代的到来 互联网 AI智能 云计算 物联网等技术的成熟 一种连手机都不需要的新型支付方式诞生了 那就是刷脸支付 扫码支付较现金支付无需找零 无需携带钱包 只需要扫码就可以完成支付 对于商家和顾客来说 支付变得简单多了 如果说 扫码
  • Feign接口Get请求自动转化成POST

    原因 在入参的时候如果没有通过注解指定 此时的参数会自动封装到body中 feign检测到body里面有请求参数就会默认使用post请求 解决方法 解决方法也很简单 只需要在参数前加 SpringQueryMap即可 GetMapping
  • vue模块化

    vue模块化 模块化开发 不使用模块化带来的问题 CommonJS es6的模块化的导出和导入 export的基本使用 export default导出 统一全部导出 模块化开发 不使用模块化带来的问题 初始模块化思想 CommonJS e
  • 拖延症解药

    拖延症解药 完美主义 情绪问题 原谅过去的自己 与自己和解 不做准备工作 在不充分条件下启动 计划 死线 是第一生产力 将 死线 提前 将它分段 分解为几个阶段性 死线 一个一个完成 更易启动 降低不确定性 完成一个小目标后奖励自己 顺序
  • 电影下载资源总结

    电驴电骡 donkey4u com emul软件 BT kickass to kat ph isohunt com www torrentkitty com thepiratebay sx thepiratebay ee 论坛 cmct c
  • python绘制三维图

    一 初始化 假设已经安装了matplotlib工具包 利用matplotlib figure Figure创建一个图框 1 2 3 4 import matplotlib pyplot as plt from mpl toolkits mp
  • Elasticsearch 5.6.5 基础笔记(一) - 概念和安装

    概念 Elasticsearch 分布式 可扩展 实时的搜索与数据分析引擎 建立在全文搜索引擎库 Apache Lucene 基础之上 能胜任上百个服务节点的扩展 并支持 PB 级别的结构化或者非结构化数据 将所有的功能打包成一个单独的服务
  • 动态数组的创建与维护

    说是动态数组 其实就是在满容量时 再创建创建一个一定容量的数组 实例代码中是原数组容量的一倍 并将对数组的引用指向新的数组 而当数组容量比较小时 则创建一个一定容量的数组 示例代码中是原数组容量的1 4 并将对数组的引用指向新的数组 示例代
  • Vulkan-程序结构

    程序结构 一般来说 完整的Vulkan程序包含 创建Vulkan实例 获取物理设备列表创建逻辑设备 创建命令缓冲 获取设备中支持图形工作的队列 初始化交换链 创建深度缓冲 创建渲染通道 创建帧缓冲 创建绘制对象 初始化渲染管线 创建栅栏和初
  • Qt获取wifi列表,连接wifi后获取IP地址

    环境win7 qt5 13 MinGW32 台式机 直接上步骤了 网上看到的略显啰嗦 就是这么简单直接 1 头文件 include windows h include wlanapi h 2 pro设置连接路径 需要根据自己安装路径加载 L
  • 要成为一名成功的网络爬虫开发者,需要了解哪些知识点?

    要成为一名成功的网络爬虫开发者 您需要掌握以下一些关键知识 编程语言 Python 是最常用的编程语言之一 特别适合网络爬虫开发 您需要掌握 Python 的基础语法 数据结构和面向对象编程 HTTP 和网络基础知识 了解 HTTP 请求和
  • React之条件渲染(学习和总结)

    在实际开发中经常会遇到条件渲染 一般都是通过if else 语句 三元运算符 switch case 语句来实现 这里记录并学习一下 1 条件渲染之 IF const users id 1 firstName Robin lastName
  • 高精度加法c语言,C语言实现高精度加法

    免费资源网 https freexyz cn 本篇为高精度加法的计算 接下来我还会去写高精度乘法的计算 一 高精度运算的概念 高精度运算其实就是参与运算的数完全超出基本数据类型所能表示的范围的运算 例如int型范围就是 2147483648