秦九韶算法在进制转换中的应用


秦九韶算法在进制转化中的应用

原理:

以二进制与十进制转化为例子:

\[(11101010)_2=(234)_{10}=0×2^0+1×2^1+0×2^2+1×2^3+0×2^4+1×2^5+1×2^6+1×2^7 \]

\[f(x)=a_0+a_1x^1+a_2x^2+a_3x^3+a_4x^4+a_5x^5+a_6x^6+a_7x^7 \]

\[f(x)=a_0+(a_1+(a_2+(a_3+(a_4+(a_5+(a_6+a_7x)x)x)x)x)x)x \]

我们可以写出代码:

#include 
using namespace std;

int main()
{
    string a="11101010";
    int len=a.size();
    int sum=0;
    
    for(int i=0;i

结论:

如果要将k进制的数a转化为十进制

#include 
using namespace std;

int main()
{
    string a;
    cin>>a;
    
    int k;//a的进制
    int sum=0;
    int len=a.size();
    
    for(int i=0;i