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