C语言大数运算-大数运算库篇
来源:互联网 发布:电脑录像软件排名 编辑:程序博客网 时间:2024/05/02 23:51
前言 :
通过前面的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语言大数运算,参考了很多人的博客和代码,学到了很多,在这里表示感谢。这次对大数运算的小小总结也是希望可以帮到有需求的人,哪怕一点点。
0 0
- C语言大数运算-大数运算库篇
- C语言大数运算-加法篇
- C语言大数运算-减法篇
- RSA与大数运算(C语言)
- c语言面试题之大数运算
- 大数运算模板(C语言)
- 大数运算 (C++)
- 大数运算(C++)
- C语言大数运算-乘除法篇
- RSA大数运算库
- 大数运算库简介
- 大数运算
- 大数运算
- 大数运算
- 大数运算
- 大数运算
- 大数运算
- 大数运算
- 剑指Offer22:栈的压入、弹出序列
- BIM今年那么火,到底学不学(深度解析)
- springmvc拦截器Interceptor实例
- cuda 学习 | GPU的归约、扫描、直方图算法
- SDIO驱动(2)Host注册流程
- C语言大数运算-大数运算库篇
- 深入理解计算机系统(CSAPP)课程实验bomb程序炸弹实验日志(phase_2)
- 列表两列布局 display:table-cell; *display:inline-block;
- 两个android程序间的相互调用(apk互调)
- 建立连接
- React Native 环境搭建, 新建项目, 运行和调试
- Balls Rearrangement (找循环节)
- spring3整合struts2
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?