C言語大数演算-大数演算ライブラリ編

5287 ワード

前言:前の3つの文章を通じて、私たちはすでに大数の4つの演算を実現しました.このブログでは、これはいくつかの方法でライブラリファイルを作成し、自分で後日使用することができます.注意深い読者は気づいたかもしれないが、プログラムごとに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
  3 #include
  4 #include
  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言語大数演算は、多くの人のブログやコードを参考にして、多くのことを学び、ここで感謝の意を表します.今回の大数演算の小さなまとめも、少しでも需要のある人の役に立つことを願っています.