十进制转化为二进制


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

```代码

#include<iostream>

#include<string>

#define N 4000

usingnamespacestd;

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

    intsize=0;

    for(inti=0;i<n;){

        intk=0;

        for(intj=i;j<n;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<s.length();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<n;i++)

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

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

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

            cout<<d[i];

        cout<<endl;

    }

    return0


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容