美文网首页考研计算机机试刷题修炼
十进制转化为二进制的代码

十进制转化为二进制的代码

作者: 故梦_三笙 | 来源:发表于2019-04-30 10:30 被阅读4次

在做完进制转换之后,conversion函数就懂了,而且也学会了简书如何上传代码

#include<iostream>
#include<string>
#define N 4000
using namespace std;
int conversion(int d[],int data[],int n,int x,int y){
    int size=0;
    for(int i=0;i<n;){
        int k=0;
        for(int j=i;j<n;j++){
            int t=(d[j]+k*x)%y;
            d[j]=(d[j]+k*x)/y;
            k=t;
        }
        data[size++]=k;
        while(d[i]==0) i++;
    }
    return size;
}
int main(){
    string s;
    int d[N],data[N];
    while(cin>>s){
        for(int i=0;i<s.length();i++)
            d[i]=s[i]-'0';
        int n=conversion(d,data,s.length(),10,2);
        int start;
        for(start=0;data[start]==0;start++);
        for(int i=start;i<n;i++)
            data[i-start]=data[i];
        n=conversion(data,d,n-start,2,10);
        for(int i=n-1;i>=0;i--)
            cout<<d[i];
        cout<<endl;
    }
    return 0

相关文章

网友评论

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

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