m进制转换为n进制-任意进制转换算法

本文介绍了如何将一个数从任意m进制转换为n进制,主要针对面试中常见的进制转换问题。通过C语言和Java的实现方式展示了辗转相除法和字符串处理的解决方案,强调了算法的时间复杂度为O(n),并指出了不同实现的优缺点。
摘要由CSDN通过智能技术生成

这种题也是一道经典的面试题,主要考察进制转换细想,Coding质量等。

    当我们把十进制转成二进制的时候,我们通过辗转相除,取余,逆置余数序列的过程得到新的进制的数。因此我们可以借助这种思想把M进制转成N进制的数。

    如下是C的详细的实现方法

void m2n(int m, char* mNum, int n, char* nNum) 
{
	int i = 0;
	char c, *p = nNum;

	//这是一个考察地方,是否能用最少乘法次数。
	while (*mNum != \'\\0\')
		i = i*m + *mNum++ - \'0\';
	
	//辗转取余
	while (i) {
		*p++ = i % n &
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值