首页 > 其他分享 >高精度减法与混合加法

高精度减法与混合加法

时间:2024-08-18 08:53:45浏览次数:11  
标签:10 bigNum 高精度 int len num 加法 carry 减法

高精度减法

bigNum bigSub(bigNum* a, bigNum* b)
{
	bigNum c;
	for (int i = 0; i < a->len || i < b->len; i++)
	{
		if (a->num[i] < b->num[i])
		{
			a->num[i] += 10;
			a->num[i + 1] -= 1;
		}
		c.num[i] = a->num[i] - b->num[i];
	}
	while (c.num[c.len - 1] == 0&&c.len>=1)
		c.len--;
	return c;
}

注意:只能实现结果为正,故使用前需用比较

混合加法

bigNum smallMul(bigNum* a, int b)
{
	int carry = 0; int len = a->len;
	bigNum c;
	for (int i = 0; i < len; i++)
	{
		int temp = b * a->num[i] + carry;
		c.num[c.len++] = temp % 10;
		carry = temp / 10;
	}
	while (carry != 0)
	{
		c.num[c.len++] = carry % 10;
		carry = carry / 10;
	}
	return c;
}

标签:10,bigNum,高精度,int,len,num,加法,carry,减法
From: https://www.cnblogs.com/Arc-ux/p/18365276

相关文章

  • 【漫谈C语言和嵌入式007】AD2S1210简介与应用:高精度旋转变压器到数字转换器的解析
            在精密运动控制和测量系统中,旋转变压器(Resolver)是一种常用的传感器,能够精确检测旋转轴的位置和速度。为了将旋转变压器的模拟信号转换为数字信号,便于微控制器或DSP进行处理,AD2S1210作为一款高性能的旋转变压器到数字转换器(RDC),为工程师提供了高精度、低延迟的......
  • 区间加法(LeetCode)
    题目        假设你有一个长度为 n 的数组,初始情况下所有的数字均为 0,你将会被给出 k​​​​​​​ 个更新的操作。        其中,每个操作会被表示为一个三元组:[startIndex,endIndex,inc],你需要将子数组 A[startIndex...endIndex](包括startIndex......
  • 高精度运算——大数加法与乘法
    要点:加法直接传递进位,乘法先保留进位,后统一处理使用int数组存储,空间浪费,处理方便建立bigNum结构(或类),处理清晰方便代码:基础定义#include<bits/stdc++.h>usingnamespacestd;charnum1[10000];charnum2[10000];structbigNum{ intnum[1000]={}; intlen;};vo......
  • SciTech-BigDataAIML-LLM-Transformer Series-Positional Encoding: 位置编码: 统计模
    词汇WE(WordEmbedding):词嵌入PE(PositionalEncoding):位置编码统计模型和大数据的本源是由"MI(移动互联网)"和"IoT(万物互联)"决定的1真正改驱“改革生产生活习惯”的是“国家政策”与“政府”。新经济的产生是以“改革生产生活习惯”为前提.生产生活的习惯改变:行政......
  • VL12 4bit超前进位加法器电路
     `timescale1ns/1nsmodulelca_4(  input   [3:0]   A_in ,  input   [3:0]   B_in ,  input         C_1 ,   output wire     CO  ,  output wire[3:0] ......
  • 蒙特卡洛1000个风光场景并通过削减法|聚类法得到几个典型场景(matlab&python实现)
        目录1 对风光的认识2 风电DG出力概率模型 2.1 风速分布特性2.2 风电DG有功出力3 光伏DG出力概率模型 3.1 光照强度分布特性3.2光伏DG有功出力 4Python代码实现4.1数据4.2Python代码 4.3结果  5Matlab实现5.1数据5.2Matlab代码 5.......
  • 高精度光学测量工具MXoptiCal,分分钟搞定实车测试数据对标
    一、产品概述  在实车ADAS/AD功能测试时,工程师需要在车上安装更高精度的传感器来对车辆的参照物距离进行准确测量,从而判断ADAS/AD功能实现的准确性,因此也需要车上准确的对照点位置。 MXoptiCal是由德国MdynamiX公司开发的一款高精度光学测量工具,旨在实现简便且重复性高的......
  • 浮点高精度
    简单封装了一下浮点加法乘法,未验证structBigFloat{staticconstintN=100,n=16;//位数,保留位数vector<int>integer;//整数部分(逆序存储)123.-->321.vector<int>decimal;//小数部分(正序存储).456-->.456intintegerSize;//整数长度intdecim......
  • Bug | priority_queue.size()无符号整型进行减法运算引发的惨案
    问题描述:使用优先队列(priority_queue)来实现大根堆和小根堆。在维护两个堆平衡的过程中,需要使用priority_queue.size()来判断两个堆的大小。因为.size()返回的是无符号类型,直接进行减法运算会导致错误。错误代码if(max_heap.size()-min_heap.size()>1)Balance(1);......
  • AI在医学领域:nnSynergyNet3D高精度分割肝硬化肝脏体MRI图像
    关键词:肝硬化肝脏分割、协同深度学习模型、跨模态泛化    肝硬化是慢性肝病(CLD)的最后阶段,是一个重大的全球性健康问题。2019年,它是全球死亡原因的第11位,占全球死亡人数的2.4%。尽管病毒性肝炎仍然是终末期肝病的主要原因,但与代谢功能障碍相关的脂肪肝病(MASLD)预计将由于......