(C++)除基取余法:将十进制数转化为Q进制数

Posted CSU迦叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(C++)除基取余法:将十进制数转化为Q进制数相关的知识,希望对你有一定的参考价值。

所谓基,就是指将要转换成的进制Q。
除基取余的意思就是:每次将待转换数除以Q,然后将得到的余数作为低位存储,而商则继续除以Q并重复上面的操作,直至商0时,将所有位从高到低输出就可以得到Q进制数。

代码实现如下
输入:十进制数x以及进制Q
输出:Q进制数y

#include<cstdio>

int main(){
	int x,y[20]={0},Q;	
	scanf("%d %d",&x,&Q);
	
//	100 -> 8:100%8 = 4  100/8 = 12 12%8 = 4  12/8 = 1  1%8 = 1   144 = 1*64+4*8+4*1 = 100

	int idx = 0;
	do{
		y[idx++]=x%Q;
		x/=Q;
	}while(x!=0);
	
	for(int i=idx-1;i>=0;i--){
		printf("%d",y[i]);
	}
	
	return 0;

}

示例
在这里插入图片描述

以上是关于(C++)除基取余法:将十进制数转化为Q进制数的主要内容,如果未能解决你的问题,请参考以下文章

实操进制转换:除基倒取余法

数据的表示与运算

B1022 D进制的A+B

1017. 负二进制转换

进制的转换

PAT-进制转换-B1022 D进制的A+B (20分)