最近学到栈这块内容,自写了一个二进制转八进制的C++实现代码,最近代码写的太少,手有些生了,代码质量明显下降了~
文件一 进制转换.cpp
#include "stack.h"
#include <cmath>
//二进制转八进制
int _tmain(int argc, _TCHAR* argv[])
{
Stack Binary;//创建二进制栈
char c='a';//用于接受二进制字符
cin.tie(&cout);
cout<<"请输入所需转换的二进制数以#号键结束"<<endl;
do
{
cin>>c;
if(c=='0'||c=='1')
Binary.Push (c);
}while(c!='#');
Stack Hex;
Status jugement=OK;//用于返回栈的状态
while(jugement )
{
char sum=0;//储存八进制的每一位数
for(int i=0;i<3;i++)
{
if(Binary .EmptyIf ())
break;
else
sum=sum+(Binary .Pop ()-48)*pow(2,i);
}
Hex.Push (sum);
if(Binary.EmptyIf ())
jugement =ERROR;
}
while(!Hex.EmptyIf ())
cout<<(int)Hex.Pop ();
cout<<endl;
return 0;
}
文件二 stack.h
#in