考研计算机机试刷题修炼

进制转换

2019-04-30  本文已影响4人  故梦_三笙

啊,先说下今天的事情吧,今早早上正做梦呢,宋祖儿正扶着我回家呢,那个可恶的学长又又打呼噜把我吵醒了,才四点五十,我真的想一板砖呼死他,然后七点到了实习基地发现基地没电,电脑打不开,于是打了一个小时的游戏,,,难受的不行,八点半才来电,好在今天的题目不是很难。十进制转化为二进制

回到正轨,这道题和昨天的题目很像,都是和进制转换有关的,确切的说,今天的思想用到了昨天的思想,就是昨天那个conversion函数,怎么都看不懂,看了一下大佬的代码果然还是这个函数,反正我也看不懂,就当做个公式记住好了,不是很难记,每天多看两遍就好了,我觉得昨天那个我应该也会做了,一会去看看,来上代码。

#include <stdio.h>

#include<string.h>

/*int conversion(char s[],int d[],int x,int y)//x为原来的进制,y为要转化的进制

{

    int len=strlen(s);

    int index=0;//数组下标

    for(int i=0;i<len;)

    {

        int rest=0;

        for(int j=i;j<len;j++)

        {

            int temp=rest*x+s[j]-'0';

            rest=temp%y;

            s[j]=temo/y+'0';

        }

        d[index++]=rest;

        while(s[i]-'0'==0) i++;

    }

}*/

int main()

{

    char s[32];

    int d[2000];

    while(scanf("%s",s)!=EOF)

    {

        int len=strlen(s);

        int index=0;

        for(int i=0;i<len;)

        {

            int rest=0;

            for(int j=i;j<len;j++)

            {

                int temp=rest*10+s[j]-'0';

                rest=temp%2;

                s[j]=temp/2+'0';

            }

            d[index++]=rest;

            while(s[i]-'0'==0) i++;

        }

            for(int i=index-1;i>=0;i--)

            {

                printf("%d",d[i]);

            }

    }

    return 0;

}

但行好事,莫问前程,加油。另,

强烈推荐这首歌,尤其是憨的声音,不知道什么感觉,好像是小孩子受了什么委屈快要哭的那种感觉。

上一篇下一篇

猜你喜欢

热点阅读