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