前言 :
通过前面的3篇文章我们已经实现了大数的四则运算,本篇博客我们会把这是几个个方法做成一个库文件,可以供自己日后使用。细心的读者可能意到了,每个程序都引用了big.h但是都被注释掉了。big.h就是头文件只要将函数的声明放到该文件中,然后在其它程序中引用该文件就可以使用大数运算的方法。重复的代码我就不再写了,其实有了算法你们自己就可以实现,所以我就简单的说几句。

文件命名:
头文件: big.h 源码在本篇
大数加法:big_add.c 完整源码在加法篇
大数减法:big_sub.c 完整源码在减法篇
大数乘法:big_mul.c 完整源码在乘除法篇
大数除法:big_div.c 完整源码在乘除法篇
测试文件:main.c 源码在本篇

实现:
1.将每个源码文件中的main函数去掉,将big.h注释取消。
2.编写big.h代码如下。

  1 char * bigadd(char *adda,int lena,char *addb,int lenb);2 char * bigsub(char *suba,int lena,char *subb,int lenb);3 char * bigmul(char *m,int lena,char *f,int lenb);4 char * bigdiv(char *diva,int lena,char *divb,int lenb);

3.编写一个测式的文件,代码如下。

  1 #include"big.h"2 #include<string.h>3 #include<stdlib.h>4 #include<stdio.h>5    int lena,lenb;6    char *result;7    char sa[BUFSIZ],sb[BUFSIZ];8 void getdata(){9    scanf("%s",sa);10    scanf("%s",sb);11    lena=strlen(sa);12    lenb=strlen(sb);13 14 }15 void myadd(void){16    getdata();17    result=bigadd(sa,lena,sb,lenb);18    puts(result);19 }20 void mysub(void){21    getdata();22    result=bigsub(sa,lena,sb,lenb);23    puts(result);24 }25 void mymul(void){26    getdata();27    result=bigmul(sa,lena,sb,lenb);28    puts(result);29 }30 void mydiv(void){31    getdata();32    result=bigdiv(sa,lena,sb,lenb);33    puts(result);34 }35 36 int main(){37    myadd();38    mysub();39    mymul();40    mydiv();41    return 0;42 }

编译和测试:

gcc big_add.c big_sub.c big_mul.c big_div.h./a.out

C语言大数运算,参考了很多人的博客和代码,学到了很多,在这里表示感谢。这次对大数运算的小小总结也是希望可以帮到有需求的人,哪怕一点点。

C语言大数运算-大数运算库篇相关推荐

  1. 易语言 大数计算 大数支持库的使用实例

    部分数据过大需要使用到大数计算,网上暂时没看到简单的例子实例,所以记录下.希望能帮上需要的人. 以下代码直接复制到易语言即可使用.支持库里需要勾选上    数值计算支持库 EC模块下载地址:易语言大数 ...

  2. 大数取模运算,快速幂取模运算

    1.快速幂取模 http://www.cnblogs.com/yinger/archive/2011/06/08/2075043.html 快速幂取模就是在O(logn)内求出a^n mod b的值. ...

  3. c语言 0x12ed,C语言基本数据类型及运算题库有答案.doc

    C语言基本数据类型及运算题库有答案 第二章 基本数据类型及运算 一.选择题 1. 若以下选项中的变量已正确定义,则正确的赋值语句是 . A) x1=26.8%3; B) 1+2=x2; C) x3=0 ...

  4. 大数取余运算(详解)

    大数取余运算(详解) //(19^3 mod 23)^2 mod 31=25 //a=19 b=3 c=23 d=2 e=31 #include<stdio.h> long long po ...

  5. c语言for循环除法运算,C语言入门这一篇就够了

    c语言入门 C语言一经出现就以其功能丰富.表达能力强.灵活方便.应用面广等特点迅速在全世界普及和推广.C语言不但执行效率高而且可移植性好,可以用来开发应用软件.驱动.操作系统等.C语言也是其它众多高级 ...

  6. C语言中的移位运算乘法,C语言中 移位操作运算

    移位规律: 左移时总是移位和补零.右移时无符号数是移位和补零,此时称为逻辑右移;而有符号数大多数情况下是移位后补最左边的位(也就是补最高有效位),移几位就补几位,此时称为算术右移.(其实跟扩展逻辑一样 ...

  7. C语言实现1024bit大数加法(1)

    本来利用一般的思想的是一个数组位存一位数, 需要初始化数组a[1024],但是可以利用更节省空间的方法. C语言unsigned int 的范围是0-2^32-1,一个数组位就可以存32bit(1个i ...

  8. c语言10以内位运算,C语言基础知识--位运算

    1.原码,反码,补码: (1)在n位的机器数中,最高位为符号位,该位为零表示为正,为一表示为负:其余n-1位为数值位,各位的值可为零或一.当真值为正时,原码.反码.补码数值位 完全相同:当真值为负时, ...

  9. c语言中一些常用的逻辑运算,C语言中的位运算和逻辑运算

    这篇文章来自:http://blog.csdn.net/qp120291570/article/details/8708286 位运算 C语言中的位运算包括与(&),或(|),亦或(^),非( ...

  10. bc库 php,PHP实现高精确度运算BC函数库

    这篇文章主要介绍了PHP高精确度运算BC函数库,结合实例形式分析了BC函数库中bccomp.bcadd.bcsub.bcmod.bcp.bcmul等函数的功能以及高精度数学运算使用方法,需要的朋友可以 ...

最新文章

  1. centos7安装postgresql数据库
  2. 使用OpenCV 实现matlab的padarray(A, padsize, ‘symmetric’)函数简单实现
  3. 数据科学学习课件:实用数据挖掘与人工智能
  4. 解决Error spawning 'cmd.exe'的问题
  5. IIS 启动不了(服务没有及时响应启动或控制请求)解决
  6. 又走一人 苹果自动驾驶系统工程项目经理已离职
  7. 纯CSS实现兼容ie6以上的圆角头像
  8. 【java】窗口控件及字符串和异常的综合应用
  9. 代码中(C#)支持动态拼接SQL的参数化查询
  10. 【浙江大学PAT真题练习乙级】1005 继续(3n+1)猜想 (25分) 真题解析
  11. mac新手入门:在Mac上怎么使用夜览
  12. 42.翻转单词顺序 VS 左旋转字符串(C++版本)
  13. 一建已经过去,正是中级通信工程师黄金备考期!
  14. 玩转WIN7的MKLINK
  15. 计算机国二复习攻略,全国计算机等级考试二级复习指导及应试技巧二
  16. Xshell7怎么更改字体颜色和标签颜色方法教程
  17. 单管发报机的神奇之处-身兼两职
  18. transition动画效果
  19. 【小白入门】用Python增加文章阅读量
  20. 基于asp.netCoreWebApi的webSocket通信示例(net6)

热门文章

  1. 一文学会如何使用Java的交互式编程环境 JShell
  2. 补单平台哪个靠谱 天猫补单哪个安全
  3. IT桌面运维常识系列 -(Windows脚本)
  4. 像素图片转矢量图片——从图像中提取曲线信息
  5. gcode2pointClound
  6. 2006年考研数学一解析pdf
  7. tp1900芯片对比7621a_MT7621A和MT7620A两个芯片各有什么特点?
  8. 删除远程桌面登录的记录(mstsc)
  9. 照片宽高比怎么设置_2019年中级会计报名照片上传完整攻略
  10. 精美的液晶数字字体素材