标题:求助,二进制转换成八进制,问题在哪?
只看楼主
娜美桑
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-12-9
结帖率:100%
已结贴  问题点数:20 回复次数:3 
求助,二进制转换成八进制,问题在哪?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
void main()
{
    double s;
    int j,i,n,t;
    char a[64];
    printf("输入一个二进制数\n:");
    gets(a);
    n=strlen(a);
    for(i=0;i<n;i++)
        s=s+(a[i]-48)*pow(2,n-1-i);
    t=s;
    //将二进制转为十进制
    for(i=0;i<=63;i++);
    {
        a[i]=t%8;
        t=t/8;
    }
    printf("输出的八进制为:");
    for(j=i;j>=0;j--)
    {
        printf("%d",a[j]);
        printf("\n");
    }
}
搜索更多相关主题的帖子: include double 二进制 八进制 十进制 
2016-12-09 18:59
娜美桑
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-12-9
得分:0 
2016-12-09 20:02
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
得分:20 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
    unsigned s=0;
    int j,i,n;
    char a[64],e[64];
    printf("输入一个二进制数\n:");
    gets(a);
    n=strlen(a);
    for(i=0;i<n;i++)
        s=s+(a[i]-48)*pow(2,n-1-i);
    //将二进制转为十进制
    i=0;
    while(s)
    {
        e[i++]=s%8;
        s/=8;
    }
    for(--i;i>=0;--i)
        printf("%d",e[i]);
}
2016-12-09 21:14
娜美桑
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-12-9
得分:0 
回复 3楼 linlulu001
谢谢
2016-12-10 12:13



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




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

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