搜索
首页 电脑/网络

谁能告诉我二进制转换任意进制的方法?

希望知道的朋友告诉我!把二进制的数改转换为任意进制.

全部回答

2008-07-12

0 0

    转换为2的几何级数倍进制比较容易,其他的就不方便了。 先说和10进制的转换: 倒序将2进制数编幂数,例如10101010从后向前幂数依次为7654321,所以它转换为10进制就是1*2^7+0*2^6+1*2^5+0^2^4+1*2^3+0^2^2+1^2^1+0^2^0=170,这种算法适用于将任意进制转换为10进制,只要将底数替换即可。
     下面说2的几何级数倍的算法: 一般就是将2进制按2的级数进行分段,比方说8进制(8是2的3次方),将2进制分为每3位一段进行转换,每段单独按十进制转换即可。 10101010,分为10|101|010,然后每段进行单独转换,10转换后为2,101转换后为5,010转换后为2,所以10101010(2)=252(8)。
     其他进制一般算法就是先将2进制转换为10进制,再用短除法转换为其他进制,短除法我记不清怎么个算法了,并不是算公约数之类的那个短除法,借位算法比较特殊,只不过最后余数作为最后一位。
   例如170(10)进制就使用170=332(7)。

2008-07-12

95 0

    觉的很久没发代码了。。。 下面的代码是二进制转换为任意进制,记得是上学期大个说找工作什么的叫我帮忙写的,当时赶时间,也就用个简单的容器来实现了,多指教! 其中具体的表示形式可以再稍做修改~ class CDec2Any{ std::vector Cvec; public: void Dec2Any(int&,int&); }; void CDec2Any::Dec2Any(int& mNum, int& mType) { if ( mNum / mType != 0 ){ Cvec。
    push_back( mNum % mType ); int temp = mNum/mType; Dec2Any(temp,mType); } else{ Cvec。
  push_back( mNum % mType ); } } …… //main。  cpp int iNum,iType; CDec2Any a; cout>iNum>>iType; a。
  Dec2Any(iNum,iType); for( vector::reverse_iterator iter = a。Cvec。rbegin(); iter != nd(); ++iter ){ cout<<*iter; } cout<<endl; 参考 。
    。

2008-07-12

98 0

1.在Windows Xp中 点击"开始"---- "程序"___"附件"___ "计算器" 2.启动"计算器"后 在菜单栏点击"查看" 选择“科学型(S)" 即可看到转换选项, 3.选择二进制,输入任意数值,选择十六进制或八位进制等等即可在十六进制或八位进制等数制间转换.

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
电脑/网络
程序设计
电脑装机
操作系统/系统故障
硬件
笔记本电脑
百度
互联网
反病毒
软件
举报
举报原因(必选):
取消确定举报