现在的位置: 首页 > 综合 > 正文

任意进制整数之间的相互转换(C++实现)

2013年10月01日 ⁄ 综合 ⁄ 共 2003字 ⁄ 字号 评论关闭

      任意进制整数之间的相互转换经常出现在各大IT公司的笔试面试中,这里我对其中的算法和实现代码做个总结。

 

算法思想:例如,要求将x1进制的数r1转化成为x2进制的数r2,首先应该将r1转化为十进制的数r_decimal,然后再将十进制数r_decimal转化为x2进制的数r2。(1<x1<17&&1<x2<17)

下面是我用C++实现的代码,已经在visual C++ 6.0上测试通过了,程序没有考虑太多的细节(整数和进制合法性的判断等),主要是为了实现算法的思想,如果想做的再好一点,个人感觉应该用类实现,将整数封装成class。

例如,

class Number

{

private:

    string num;

    int binary;

public:

    /*构造函数*/

    Number(string num,int binary);//包含对数据合法性的检查

    Number(Number num);

    int convertToDecimal(string num,int binary);//将任意进制转化为十进制

    string decimalToAnyBinary(int decimal,int binary);//将十进制转化为任意进制

    Number ToAnyBinary(int binary);//将任意进制转化为任意进制

    void showNumber();//打印整数信息

};

程序代码:

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

抱歉!评论已关闭.