C++编程day2—>十进制转X进制(进制转换)

想要实现十进制数转任意进制数,就需要用到短除法。先定义变量:

int n,x;

n代表准备转换的数,x代表需要把转换成几进制的数。

接着我们定义一个数组用来存放每次短除的值:

int ans[45];

定义一个t,是每次短处ans的下标:

int t = 1;//本人喜欢从1下标开始,不要见怪

然后实现短处:

while(n != 0)
{
	ans[t] = n%x;
	t++;
	n /= x;//更新数字n
}

最后实现输出,如果ans[i]大于等于0并且小于等于9,那么输出ans[i]-'0'(需要把ASCLL码转换成数字),否则,进行一个强转,将ans[i]-55之后在输出(字符串学好的一定能看懂):

for(int i = t-1;i >= 1;i--)
{
	if(ans[i] >= 0 && ans[i] <= 9)
	{
		cout << ans[i];
	}
	else
	{
		cout << (char)(ans[i]+55);
	}
}

全部代码如下:

#include<iostream>
using namespace std;
int ans[45];
int main()
{
	int n,x;
	cin >> n;
	cin >> x;
	int t = 1;
	while(n != 0)
	{
		ans[t] = n%x;
		t++;
		n /= x;//更新数字n
	}
	//最后一个余数
	for(int i = t-1;i >= 1;i--)
	{
		if(ans[i] >= 0 && ans[i] <= 9)
		{
			cout << ans[i];
		}
		else
		{
			cout << (char)(ans[i]+55);
		}
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值