关于这个问题,迟早总要面对的,一次dec与std::dec的冲突后,决定好好学习一下进制转换。

      在C++的ios里面有三个函数,std::oct(转8进制), std::dec (转10进制), std::hex(转16进制),std::bitset(转二进制)。

      先贴代码吧:

#include <bitset> int main() {     std::cout << "The number 42 in octal:   " << std::oct << 42 << '\n'               << "The number 42 in decimal: " << std::dec << 42 << '\n'               << "The number 42 in hex:     " << std::hex << 42 << '\n' 			  << "The number 42 in bit:     " <<bitset<8>(42)<< '\n';;

        在这里,首先我们可以初步的认识进制函数转换使用了。

现在贴一个任意进制转换函数:

/**********     输入数字-x   进制选择 -k                *****************/ void fun(int x,int k) {     int a,b,c=-1,zu[10];     b=x;     x=x*k;     do     {         a=b%k;         c++;         b=(b-a)/k;         x=x/k;         zu[c]=a;         }     while(x/k>0);     for(;c>=0;c--)     {         if(zu[c]>9)             printf("%c",zu[c]+55);         else             printf("%d",zu[c]);     } }