《算法笔记》C++ 进制转换

该博客介绍了如何使用C++解决PAT1022题目的算法,即把两个非负10进制整数相加然后转换成指定进制(D)的数字。通过将P进制数字转为10进制,再进行加法运算,最后将结果转换为D进制输出。代码中展示了如何进行进制转换的步骤,包括求商取余和逆序输出。
摘要由CSDN通过智能技术生成

对于一个P进制的数字,若要转化为Q进制,则需要两部:

第一步:

将P进制的数字转化为10进制

y=a1*p(n-1)+a2*p(n-2)+....+an-1p+an

如何实现?

 int x,p;
	int y=0,pro=1;//p表示进制
	while(x!=0){
		y=y+(x%10)*pro;
		x=x/10;
		pro=p*pro;
	}
//将 十进制转换为q进制,除基取余法;
/*例如11转换为2进制
首先11%2=5  余1
5%2=2  余1
2%2=1  余0
1%2=0  余1
所以十一的二进制为  1011 
*/ 
int z[40],num=0;
do{
z[num++]=y%q;
y=y/q;

}while(y!=0);//当商不为0时循环 

例题 PAT1022


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值