十进制转化为二进制

作者: 故梦_三笙 | 来源:发表于2019-04-29 17:02 被阅读0次


这道题主要是怎么存储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函数看不懂,留着以后看吧。这道题就先跳过。

相关文章

网友评论

    本文标题:十进制转化为二进制

    本文链接:https://www.haomeiwen.com/subject/dbcunqtx.html