//LongInt.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include"string.h"#defineMAXLEN50/**//*functionInputLongInt()长整数输入函数*/intInputLongInt(int*a,char*para)...{intlen,i;charnumber[MAXLEN];printf("请输入[%s]长整数: ",para);scanf("%s",number);len=strlen(number);for(i=len;i>=1;i--)a[i]=number[len-i]-'0';a[0]=len;return(a[0]);}/**//*functionOutputLongInt()长整数输出函数*/voidOutputLongInt(int*a,char*para)...{inti;printf("输出的[%s]长整数: ",para);for(i=a[0];i>=1;i--)printf("%d",a[i]);printf(" ");}/**//*functionFormatLongInt()长整数规范化函数*/intFormatLongInt(int*a)...{intp;for(p=1;p<a[0]||a[p]>=10;p++)...{if(p>=a[0])a[p++]=0;a[p++]+=a[p]/10;a[p]=a[p]%10;}if(p>a[0])a[0]=p;return(a[0]);}/**//*functionLongIntAddLongInt()长整数加长整数函数相加的和放在数组A中*/voidLongIntAddLongInt(int*a,int*b)...{inti;while(a[0]<b[0])a[++a[0]]=0;for(i=1;i<=b[0];i++)a[i]+=b[i];FormatLongInt(a);}/**//*functionLongIntDivInt()长整数除普通整数函数除得的商放在数组A中,余数放在返回值中*/intLongIntDivInt(int*a,intdivisor)...{intp,//存储相除后的余数下标k;//存储数字个数(长整数有效数字个数)k=p=a[0];a[0]=0;while(p>0)...{a[p-1]+=a[p]%divisor*10;a[p]=a[p]/divisor;if(a[k]==0)k--;p--;}p=a[0]/10;//保存余数a[0]=k;//回写有效数字个数FormatLongInt(a);return(p);}/**//*functionLongIntDivInt()长整数转换成二进制数函数转换的二进制数存储数组B中*/voidLongIntToBin(int*a,int*b)...{intp;b[0]=0;while(a[0]>0)...{b[0]++;b[b[0]]=a[1]%2;p=a[0];while(p>0)...{if((a[p]%2)&&(p>1))a[p-1]+=10;a[p]/=2;if(a[a[0]]==0)a[0]--;p--;}}}intmain(intargc,char*argv[])...{inta[MAXLEN],b[MAXLEN];intlen,residue;/**//*len=InputLongInt(a);printf("源长整数的长度是:%d ",len);str="源";OutputLongInt(a,str);len=FormatLongInt(a);printf("规范化后长整数的长度是:%d ",len);str="规范化后";OutputLongInt(a,str);residue=LongIntDivInt(a,11);str="除以普通整数11后";OutputLongInt(a,str);printf("长整数除以普通整数11后的余数是:%d ",residue);*/len=InputLongInt(a,"第一个加数");//len=InputLongInt(b,"第二个加数");//LongIntAddLongInt(a,b);//OutputLongInt(a,"两数相加的和");LongIntToBin(a,b);OutputLongInt(b,"转换后的二进制数");printf(" 应用程序正在运行! ");return0;}