十进制转化为二进制


这道题主要是怎么存储1000位的大数,如果按照以前那样的话高精度整数,转化为二进制有点麻烦,所以我看了一下大佬的做法,果然我看不懂。。

```代码

#include

#include

#define N 4000

usingnamespacestd;

intconversion(intd[],intdata[],intn,intx,inty){

    intsize=0;

    for(inti=0;i

        intk=0;

        for(intj=i;j

            intt=(d[j]+k*x)%y;

            d[j]=(d[j]+k*x)/y;

            k=t;

        }

        data[size++]=k;

        while(d[i]==0) i++;

    }

    returnsize;

}

intmain(){

    string s;

    intd[N],data[N];

    while(cin>>s){

        for(inti=0;i

            d[i]=s[i]-'0';

        intn=conversion(d,data,s.length(),10,2);

        intstart;

        for(start=0;data[start]==0;start++);

        for(inti=start;i

            data[i-start]=data[i];

        n=conversion(data,d,n-start,2,10);

        for(inti=n-1;i>=0;i--)

            cout<

        cout<

    }

    return0


conversion函数看不懂,留着以后看吧。这道题就先跳过。

你可能感兴趣的:(十进制转化为二进制)