c语言实现大数运算_c语言标准库教程

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


Jetbrains全系列IDE稳定放心使用

前言 :
通过前面的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语言大数运算,参考了很多人的博客和代码,学到了很多,在这里表示感谢。这次对大数运算的小小总结也是希望可以帮到有需求的人,哪怕一点点。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185061.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 树莓派3b入门指南「建议收藏」

    树莓派3b入门指南「建议收藏」近日,入手了树莓派3b,准备把它当一台防火墙用,配置如下:我买的套装是最简版的,只有一个电源线、一个塑料外壳,一个8GSD卡,几个散热片。捣鼓了几天,网上搜索了一些资料,在此记录下详细的过程,方便之后入手的朋友。一.烧写树莓派镜像(需要一个SD卡读写器)1.进入官网https://www.raspberrypi.org/downloads/下载页面,选择“RASP…

    2022年6月25日
  • Logout_logoutAll

    Logout_logoutAll现在到注销。早些时候我们离开这个函数一片空白,现在是时候来填补它。在UsersController:注销()添加以下:$this->Session->setFlash(‘Good-Bye’);$this->redirect($this->Auth->logout());这个设置一个会话flash信息和日志使用身份验证用户的注销方法。身份验证的注销方法基本上删除身份验证会话密钥并返回一个可

    2022年10月21日
  • Qt多线程1:QThread

    Qt多线程1:QThreadQt有两种多线程的方法,其中一种是继承QThread的run函数,另外一种是把一个继承于QObject的类转移到一个Thread里。Qt4.8之前都是使用继承QThread的run这种方法,但是Qt4.8之后,Qt官方建议使用第二种方法。两种方法区别不大,用起来都比较方便,但继承QObject的方法更加灵活。这里要记录的是如何正确的创建一个线程,特别是如何正确的退出一个线程。

    2022年5月28日
  • bs架构和cs架构的比对方法_cs架构嵌入BS

    bs架构和cs架构的比对方法_cs架构嵌入BS1、CS、BS架构定义  CS(Client/Server):客户端—-服务器结构。C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。因为客户端要负责绝大多数的业务逻辑和UI展示,又称为胖客户端。它充分利用两端硬件,将任务分配到Client和Server两端,降低了系统的通讯开销。C/S结构的软件需要针对不同

    2022年10月16日
  • pycharm2021永久激活码-激活码分享

    (pycharm2021永久激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~M…

    2022年3月21日
  • 最新版redis的安装及配置 linux系统

    最新版redis的安装及配置 linux系统

    2021年10月10日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号