小白一枚,求大神。

u012266814 2013-11-18 09:11:11
求一个二进制转八进制,八进制再转十六进制的方程式。用C语言编写。多谢了。
...全文
116 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
u011781558 2013-11-19
  • 打赏
  • 举报
回复
http://zhidao.baidu.com/question/17571191.html
u011781558 2013-11-19
  • 打赏
  • 举报
回复
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
    int n,i,j,m;
    int sum;
    char s[37];
    while( cin>>n )
    {
        while( n-- )
        {
            cin>>s;
            sum=0;
            m=strlen(s);
            for(i=m-1;  i>=0;  i--  )
                sum+= ((s[i]-'0')<<(m-i-1));//<<是位操作符,表示二进制数向左移位,如001变为010,等效于sum+=((s[i]-'0')*2^(m-i-1));这样应该清楚了,如0101==0*2^3+1*2^2+0*2^1+1*2^0;即转为十进制
            if(sum==0)
            {
                cout<<"0"<<endl;continue;
            }

            int a[10];
            i=0;
            while(sum)
            {
                a[i]=sum%8;//这部分是十进制转八进制的,原理同上。
                sum/=8;
                i++;
            }
            for(j=i-1;  j>=0;  j--) cout<<a[j];
            cout<<endl;

        }
    }
}

1,978

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧