c语言:十进制转任意进制

思路:如十进制转二进制

就是不断除二求余在除二求余,然后将余数从下到写出来,这样,10011100就是156的二进制

c语言:十进制转任意进制_第1张图片


 

这里举例一个六进制的代码:

#define  _CRT_SECURE_NO_WARNINGS
#include

int main()
{
	int n = 0;
	int arr[40] = { 0 };
	scanf("%d", &n);

	int i = 0;
	while (n)
	{
		arr[i] = n % 6;//6进制,%6/6,参考10进制转2进制
		i++;
		n = n / 6;
	}
	for (i--; i >= 0; i--)//i进去就减1,因为要打印下标,从最后下标逆序打印
	{
		printf("%d", arr[i]);
	}
	return 0;
}

 如此,我们就能类推出10进制转任意位的代码:

#define  _CRT_SECURE_NO_WARNINGS
#include

int main()
{
	int n = 0;
	int arr[40] = { 0 };
	scanf("%d", &n);

	int i = 0;
	while (n)
	{
		arr[i] = n % k;//k是要转的进制
		i++;
		n = n / k;
	}
	for (i--; i >= 0; i--)//i进去就减1,因为要打印下标,从最后下标逆序打印
	{
		printf("%d", arr[i]);
	}
	return 0;
}

效果展示(6进制的): 

 c语言:十进制转任意进制_第2张图片

你可能感兴趣的:(c语言,开发语言)