日常生活中使用的是十进制,而计算机使用的是二进制,还有八进制 十六进制等,不同进制的区别在于逢几进1。
P进制转Q进制
第一步:将P进制转换为十进制
按权展开,再相加
eg:二进制转十进制
将P进制数x转换为十进制数y的代码实现
//通过设product为1 然后不断与P相乘 达到从零开始的幂次相加的结果
int y = 0,product=1;
while(x!=0){
y = y + (x%10)*product;//x%10获取个位数
x = x/10;//去掉已经计算完的个位
product = product * P;
}
第一步:将十进制转换为Q进制
除基(Q)取余法
将十进制数y转换为Q进制数z的代码实现
int z[40],num=0;
do{
z[num++]= y%Q;//除基取余
y = y/Q;
}while(y!=0);//当商不为0时进行循环
/*注意呀 输出z的时候 是从在z[num-1]到z[0]
*用do while是为了确保肯定先执行一次 不然0的话就直接跳出循环了*/

#include <cstdio>
int main(){
int a,b,d;
scanf("%d %d %d",&a,&b,&d);
int c = a+b;
int z[40],num=0;
do{
z[num++] = c%d;
c=c/d;
}while(c!=0);
for(int i=num-1;i>=0;i--) printf("%d",z[i]);
return 0;
}