Advertisement

算法笔记C++进制转换问题

阅读量:

将一个P进制的数值转换为Q进制,通常需要经历两个步骤:

第一步:

将原本以P为基数的数值转换为十进制形式

y=a1p(n-1)+a2p(n-2)+...+an-1*p+an

具体该如何操作?

复制代码
  int x,p;

    
 	int y=0,pro=1;//p表示进制
    
 	while(x!=0){
    
 		y=y+(x%10)*pro;
    
 		x=x/10;
    
 		pro=p*pro;
    
 	}
    
    
    
    
    AI写代码cpp

将十进制数转换为q进制数,通常采用的是除基取余的方法;
/*例如,将数字11转换为二进制形式
首先计算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);//当商不等于零时继续循环

例题 PAT1022

复制代码
    
    
    AI写代码cpp

时间约束

100 ms

内存约束

65536 kB

全部评论 (0)

还没有任何评论哟~