10进制以下的任意进制转换

来源:互联网 发布:均衡器软件哪个好 编辑:程序博客网 时间:2024/06/11 13:01

首先说一下进制问题

       进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一.

假设一个数字N可以用P进制表示,那么有

 N = a0 * P^0 + a1 * P^1 + a2 * P^2 + … + ak * P^k

其中 (0 <= ai < P)

 例子:

(1)15分解为2进制

15 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8(1111)

(2)15分解为7进制

15 = 1 * 1 + 2 * 7

观察容易发现 ,N % P之后得到的是a0的值

同时 N 整除P以后 继续 %P 得到的是a1…

如此继续

于是可以得到P进制下的{a0,a1…ak}


#include "iostream"using namespace std;void DexToOther(int num,int n,char *str)  //num为准备转换进制的数字.也可以用字符串{if (num!=0){*str++=num%n+'0';num=num/n;DexToOther(num,n,str);}}int main (){char str[10];int num=100;memset(str,0,sizeof(str));  //初始化字符串DexToOther(num,2,str);strrev(str);   //字符串反转printf ("%s\n",str);return 0;}


原创粉丝点击