标题:二进制转换任意进制,有点问题 求助
只看楼主
a15022606145
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2015-7-11
 问题点数:0 回复次数:2 
二进制转换任意进制,有点问题 求助
程序代码:
#include<stdio.h>
#include<string.h>

int two_to_ten(char *p,int n)
{
    int sum = 0;
    for(int i = 0;i<n;i++)
    {
        sum *= 2 ;
        sum += p[i] - '0';
    }
    return sum;
}


void ten_to_any(int n, int change,char * buf)
{
    char bbq[128] = {0};
    int count =0 ;
    while(1)
    {
        bbq[count] = n % change ;
        count++;
        n=n/change;
        
        if(bbq[count] >= 0 && bbq[count] <= 9)
        {
            bbq[count] = bbq[count] +'0';
        }
        else 
            bbq[count] = bbq[count] + 'A'-10;
        if(n==0) break;
    }
    for(int i =0;i<count;i++)
        buf[i]=bbq[count-i-1];
}

int main()
{
    char buf[128]={0};
    printf("Please input a two_:\n");
    gets(buf);
    int n = two_to_ten(buf,strlen(buf));    
    printf("转换的十进制为%d\n",n);

    char buf1[128] = {0};
    int x = 0;
    printf("请输入要转换的进制:\n");
    scanf("%d",&x);
    ten_to_any(n,x,buf1);
    puts(buf1);


    return 0;
}



这是代码 二进制先转换成10进制 10进制在求余数 取反,  十转任意会出现乱码, 求解?
搜索更多相关主题的帖子: 进制 转换 int char count 
2018-08-21 16:02
zhangchm2018
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:32
专家分:129
注 册:2018-8-18
得分:0 
void ten_to_any(int n, int change,char * buf)
{
    char bbq[128] = {0};
    int count =0 ;
    while(1)
    {
        bbq[count] = n % change ;
        //count++; 改变数组索引,bbq[count]不再是当前计算的余数,此处应删除
        n=n/change;
        
        if(bbq[count] >= 0 && bbq[count] <= 9)
        {
            bbq[count] = bbq[count] +'0';
        }
        else
            bbq[count] = bbq[count] + 'A'-10;
        count++;
        if(n==0) break;
    }
2018-08-21 23:40
a15022606145
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2015-7-11
得分:0 
回复 2楼 zhangchm2018
懂啦 谢谢~
2018-08-22 11:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-489346-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.534894 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved