如何用c语言把十进制纯小数转换成二进制,八进制,十六进制。求代码?谢谢

如何用c语言把十进制纯小数转换成二进制,八进制,十六进制。求代码?谢谢

c

2个回答

 #include<stdio.h>
void main()
{
    int idec,i,idr,p=0,ibase;
    char strdr[20],t;//定义字符类型 strdr[20]用于存放字符串,至于下标是几无所谓,但要长一些,否则位数不够(特别是转为二进制数.
    printf("输入要转换的十进制数:");
    scanf("%d",&idec);
    printf("输入要转换的进制基数:");
    scanf("%d",&ibase);
    while(idec!=0)
    {
        idr=idec%ibase;
        if(idr>=10)
            strdr[p++]=idr-10+65;//是strdr[p++] idr-10+65是为了表示数码大于10,要从字母'A'开始向后数(65是字符'A'的ASCII码).
        else
            strdr[p++]=idr+48;//idr+48是为了将数码以字符形式表示(48是字符'0'的ASCII码)
        idec/=ibase;
    }
    for(i=0;i<p/2;i++)
    {
        t=strdr[i];
        strdr[i]=strdr[p-i-1];
        strdr[p-i-1]=t;
    }
    strdr[p]='\0';//是字符串结束标志,防止出错,不可省去
        printf("转换成%d进制后的数为:%s",ibase,strdr);
    printf("\n");
}
qq_35203978
qq_35203978 咋只能实现整数转换 小数好像不能?
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐