进制转换

来源:互联网 发布:龙之信条身材捏脸数据 编辑:程序博客网 时间:2024/06/06 00:57

转自葫芦岛一中李思洋
1) 十进制变N进制
短除法:不断地除N,直到那个数变成1。把所有的余数连接到一起,就是转换后的N进制数。
// bit[]是对应的N进制位,top是N进制下的最后一位数字的序号(从0开始)

void convertTo(int num, int base, int *bit, int &top){    top=-1;    do    {        bit[++top] = num%base;      // 可直接输出num%base        num/=base;    } while (num>0);}

(2) N进制变十进制
大家应该知道怎样将N进制转变为十进制。现在,用秦九韶算法进行计算。
// bit[]是对应的N进制位,top是N进制下的最后一位数字的序号(从0开始)
// 返回值是十进制数。

int convertFrom(int base, int *bit, int top){    int ans=0;    for (int i=top; i>=0; i--)    {        ans*=base;        ans+=bit[i];    }    return ans;}