大数运算——模加减运算
一、 vs平台
利用c语言对大数运算中的模加减运算进行了编码。
二、编码思想
条件:大数a 大数b 模p 结果r
1、加法
首先,判断a、b这两个大数是否小于模p。
如果a和b都小于模p,则:
若a+b>p,r=a+b-p;若a+b<p,r=a+b;
如果a和b其中有一个大于模p或者都大于模p,先将a或b减去p,直到a和b都小于模p为止,a1=(a-p)<p,b1=(b-p)<p,则:r=a1+b1。
2、减法
首先,判断a、b这两个大数是否小于模p。
如果a和b都小于模p,则:
若a[i] > b[i],则 r = a[i] - b[i];
若a[i] < b[i],则 r = a[i] - b[i] + p[i]
如果a和b其中有一个大于模p或者都大于模p,先将a或b减去p,直到a和b都小于模p为止,a1=(a-p)<p 或a1=a,b1=(b-p)<p 或b1=b;
若a1[i] > b1[i],则 r = a1[i] – b1[i];
若a1[i] < b1[i],则 r = a1[i] – b1[i] + p[i]
注:并且存在加法就会有进位,存在减法就会有借位。
a b < p
若 a+b>p 则 r = a+b-p;
若a+b<p 则 r = a+b;
a b > p
先a1 = (a-p)<p b1 = (b-p)<p
则:r = a1 + b1;
a b < p
若a>b r=a-b
若a<b r=a-b+p
a b > p
先a1=(a-p)<p b1=(b-p)<p
若a1>b1 r=a-b
若a1<b1 r=a-b+p
三、代码说明
void format_conversion(Sint32 *current_datat, Sint32*objective_data);
该函数是一个大小端转换的一个函数。
Uint32 numerical_transformation(Sint32 *num_a, Sint32*num_p, Sint32 *num_b);
该函数为将a与p进行比较,如果a>p,则进行a-p,直到a<p为止,将值赋给b;如果a<p,则将a值赋给b。
Uint32 module_add_sub(Sint32 *add_sub_a, Sint32 *add_sub_b,Sint32 *add_sub_p, Uint32 mode, Sint32 *add_sub_c);
该函数这是主体函数进行大数模加减运算。
大数运算——模加减运算相关推荐
- 浮点数的加减运算(阶码、尾数)
浮点数尾数运算 < ---- > 原码加/减运算 原码:+|x| 或者 -|x| (正数=0+|x| 负数的=1+|x| ) 符号位和数值部分:分开处理 仅对[数值 ...
- mysql实现俩个属性加减运算_1.3 算数运算符
(1)"运算符"和"数字"构成"表达式" Python中所谓的计算,就如同我们上数学课时所学的表达式.在四则运算当中,我们使用"+ ...
- 【Computer Organization笔记06】浮点数的数据表示,浮点数加减运算
本次笔记内容: P11 计算机组成原理(11) P12 计算机组成原理(12) 本节课对应幻灯片:组成原理13 data,第72页起.此外,本节课内容"浮点数"已经在"汇 ...
- oracle时间怎么相加减,Oracle 如何对时间进行简单加减运算
在我们用dbms_job包进行定时Job的时候,需要设置时间间隔,所以需要知道时间的基本加减方法. SQL> alter session set nls_date_format='yyyy-mm ...
- c语言中减号算一个字符吗,C语言中指针的加减运算
char arr[3]; printf("arr:\n%d\n%d\n%d\n", arr, arr + 1, arr + 2); char *parr[3]; printf(&q ...
- leetcode_592. 分数加减运算
问题描述: 给定一个表示分数加减运算表达式的字符串,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换成分数形式,其分母 ...
- HTML5实现浮点数的加减运算,浮点数表示例题
设 A=–0.101101*2-3,B= 0.101001*2-2,先将A.B表示为规格化的浮点数.要 N=(+-)M2E 其中:M代表尾数,E代表阶码. 计算机中浮点数只用尾数和阶码表示 ...
- void *指针的加减运算
1.手工写了一个程序验证void *指针加减运算移动几个字节: //本程序验证空类型指针减1移动几个字节 #include <stdio.h> int main(int argc, cha ...
- 考前自学系列·计算机组成原理·补码定点加减运算和溢出判断,浮点数的加减运算,原码的乘法
补码定点加减运算和溢出判断 浮点数的加减运算 原码乘法
- 2.3.3 浮点数的加减运算与强制类型转换
文章目录 0.思维导图 1.浮点数的加减运算 2.强制类型转换 0.思维导图 1.浮点数的加减运算 我们直接以一道题目来进行了解: 一般都要先转换格式: 2.强制类型转换
最新文章
- [BZOJ2527]Meteors
- numpy.eye()用法
- Tomcat提示:Error starting static Resources......
- shell--printf
- 修改MOSS2007内容查询部件实现自定义格式显示
- 使用keepalived实现双机热备
- Linux 命令之 locate -- 文件查找工具(查找文件/搜索文件)
- c语言 方程改main的值_C语言和汇编语言是什么?他们之间可以有怎样的合作?为你解析...
- Python 详解K-S检验与3σ原则剔除异常值
- 八字易经算法之用JAVA实现生旺死绝和十神
- 中央C到底是C几?什么是科学音高记谱法?
- 妥善处理的九大面试送命题
- Activiti6:模拟钉钉上面的请假流程(使用web画图并导出xml然后使用java执行流程)
- 典型的计算机网络安全技术有哪些,网络安全(计算机网络安全技术有哪些)
- SLI、SLO和SLA
- Android SDK介绍
- 使用Ultra Librarian将bxl文件转为OrCAD Capture CIS可识别的库文件(OLB)
- 时域同步平均TSA-学习笔记
- 在磨金石教育学室内设计靠谱吗?学费贵吗?老师负责吗?
- cadence SPB17.4 - allegro - create and switch Visibility view
热门文章
- 网吧游戏服务器制作教程,网吧服务器系统环境部署
- 一款JAVA微信小程序商城源码,带完整后台【运行版】
- 那些值得推荐的Superbrowser跨境工具
- WIN10 edge浏览器阻止文件下载解决方法
- 看大神如何玩转微信小程序日历插件?
- 系统软件设计原则_软件系统设计原则
- 全国各省五等份收入统计(2000-2017年)
- 如何下载谷歌高清卫星地图影像
- 用 reStructuredText 写作:快速入门指南
- 戴尔修复计算机软件,DELL电脑系统恢复工具(Dell OS Recovery Tool)2019 v2.3.6066官方版...