| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 951 人关注过本帖
标题:二进制转换八进制是怎样的思路
只看楼主 加入收藏
沧声笑
Rank: 1
等 级:新手上路
帖 子:36
专家分:9
注 册:2010-9-27
结帖率:100%
收藏
 问题点数:0 回复次数:8 
二进制转换八进制是怎样的思路
谢谢
搜索更多相关主题的帖子: 八进制 二进制 思路 
2010-10-23 09:48
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:0 
一种是将 二进制转换为十进制,再将十进制转换为八进制,都很简单!
第二种是 3为二进制 对应转换为一位 八进制 !就ok 了!

If You Want Something, Go Get It, Period.
2010-10-23 09:56
沧声笑
Rank: 1
等 级:新手上路
帖 子:36
专家分:9
注 册:2010-9-27
收藏
得分:0 
回复 楼主 沧声笑
能不能详细说下第二种,谢谢

2010-10-23 10:01
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:0 
譬如 二进制 100110001 又三位二进制对应一位八进制 就可以直接化了 ,注意从低位到高位 ,先是 001 对应八进制的 1 ,110 对应八进制的 6 ,100对应八进制的 4 ,所以就可以直接化为 八进制的461。 假设二进制的位数不是 3的整数倍 ,先前补0 。 不知听懂没!

If You Want Something, Go Get It, Period.
2010-10-23 10:10
沧声笑
Rank: 1
等 级:新手上路
帖 子:36
专家分:9
注 册:2010-9-27
收藏
得分:0 
回复 3楼 沧声笑
真不好意思,可能是没说明意思,是说用编程求这个的思路,这个转换知道,抱歉,谢谢。

2010-10-23 10:15
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:0 
这很简单好不好!自己想去!

If You Want Something, Go Get It, Period.
2010-10-23 10:41
zfan85
Rank: 1
等 级:新手上路
帖 子:25
专家分:8
注 册:2010-8-30
收藏
得分:0 
其实跟10进制换2进差不多的
2010-10-24 14:09
xin310923
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:203
专家分:325
注 册:2009-12-22
收藏
得分:0 
比如说  二进制100101110   转化成八进制   从右往左算   拆分称 110  101  100  110为6  101 为5  100为4  所以 转化后就变称456  八进制 是三位转换   十六进制是  四位转换   记住都要从右往左算  不足位 补零
2010-10-24 20:56
沧声笑
Rank: 1
等 级:新手上路
帖 子:36
专家分:9
注 册:2010-9-27
收藏
得分:0 
#include<iostream>
using namespace std;

int sum(int m,int x);
int main()
{
    int k=0,w,n=0,s=1,i,a,b,j=1,l=0;
    char c;
    cout <<"输入一个二进制数:";
    for(i=7;i>=0;i--)
    { cin >>c;
        if(c=='1')
            n+=sum(2,i);
    }
    cout <<"十进制="<<n<<endl;
     a=n;
    while(n!=0)
    {  
       w=n%8;
       k+=w*s;
       s=s*10;
       n=n/8;
    }
     cout<<"八进制="<<k<<endl;   
    while(a!=0)
    {  
       b=a%16;
       a=a/16;
       if(b>=10)
       cout <<"十六进制="<<char(b+'A'-10);
       else           
       {l+=b*j;
        j=j*10;
       cout<<"十六进制="<<j<<endl;}
    }         
}
 int sum(int m,int x)
{
    int val=1;
    while (x--)
    val*=m;
    return val;
}
还是自己结贴

2010-10-24 22:38
快速回复:二进制转换八进制是怎样的思路
数据加载中...
 
   



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

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