C++进制转换函数小结

      关于这个问题,迟早总要面对的,一次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]);
    }
}

你可能感兴趣的:(C++进制转换函数小结)