0001 #include "convert.h" 0002 0003 /****************************************************************************************** 0004 * 进制转换 0005 ******************************************************************************************/ 0006 int main() { 0007 srand((unsigned int)time(NULL)); //随机种子 0008 //srand( 31415926 ); //固定种子(假种子,调试用) 0009 unsigned long long n = 0; 0010 for ( int i = 0; i < 4; i++ ) { 0011 n <<= 16; 0012 n |= (rand() & 0x1) << 15 | rand(); 0013 } 0014 int base = 2 + rand() % 14; //目标进制:2 ~ 16 0015 Stack<char> S; //用栈记录转换得到的各数位 0016 ( 0 < n ) ? convert( S, n, base ) : S.push('0'); //进制转换 0017 printf( "\n\t%20llu_(10) = ", n ); 0018 while ( !S.empty() ) printf ( "%c", ( S.pop() ) ); //逆序输出栈内数位,即正确结果 0019 printf( "_(%d)\a\n", base ); 0020 return 0; 0021 }