进制转换

最近学到栈这块内容,自写了一个二进制转八进制的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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值