你是说十进制转换成其他进制么?其实是有个公式:,我来为大家讲解一下关于进制转换公式是怎么来的?跟着小编一起来看一看吧!
进制转换公式是怎么来的
你是说十进制转换成其他进制么?其实是有个公式:
S=a0+ a1*x + a2*x^2 + a3*x^3 + a4*x^4 ... 这里S代表一个整数,x代表多少进制,ai (i>=0)是系数,小于x, 大于0,^i 是i次方 所以任何一个十进制数转换成其他进制就是已知x,求所有的ai。怎么求呢?举例:
123换成8进制 123=a0 + a1*8 + a2*8^2 + a3*8^3... + 0; 为什么后面是0呢,因为123是个有限大小的数,不是无限大,所以必定是在ai i>k 以后都是0 所以,我们假定等式两边整除x^(k+1)后都是0,(C语言里俩整数相除,如果被除数小于除数,那么结果是0)假设123/(x^(k+1)) 为0,x=8那么就是 123/(8^(k+1))=0,可以算得k=2,所以123=a0 + a1*8 + a2*64,两边整除64可得a2=1,移位后123-64=a0 + a1*8 两边再除8 可得 a1=7,最后a=3,所以结果是0173(8进制以0开头)
这就是十进制用迭代除法取余的转换成其他进制的来历。
其他进制换成10进制是最容易的,就不那么详细了,那8进制0173举例:
换成10进制就是 3+7*8 + 1*8^2=3+56+64=123。即:位权相加法。