用 i n t int int 类型栈来储存,可以自行调节进制,输出位数。
inline void print(int _now,int _goal,int _cnt){//把十进制的now转换为goal进制,输出cnt位
stack _nnn;
while(_now){
_nnn.push(_now%_goal);
_now/=_goal;
_cnt--;
}
while(_cnt--) printf("0");
while(!_nnn.empty()) printf("%d",_nnn.top()),_nnn.pop();
puts("");
}
使用例:
用到 c h a r char char类型数组和栈,同上。
inline void print(int _now,int _goal,int _cnt){
char _newnumber[20]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
stack _nnn;
while(_now){
_nnn.push(_newnumber[_now%_goal]);
_now/=_goal;
_cnt--;
}
while(_cnt--) printf("0");
while(!_nnn.empty()) printf("%c",_nnn.top()),_nnn.pop();
puts("");
}
使用例:
十进制转换二进制这个感觉最常用了,给出极简版,默认输出32位。
inline void print(int _now){
stack _nnn;int _cnt=32;
while(_now) _nnn.push(_now%2),_now>>=1,_cnt--;
while(_cnt--) printf("0");
while(!_nnn.empty()) printf("%d",_nnn.top()),_nnn.pop();
puts("");
}
使用例:
任意进制转十进制使用的是字符串读入。
inline void print(string _now,long long _goal){
long long _newnum=0;int _nowpos=0;
while(_nowpos<_now.size()){
_newnum*=_goal;_newnum+=int(_now[_nowpos]-((_now[_nowpos++]<='9')?'0':'7'));
}
printf("%lldn",_newnum);
}
使用例:
如果本文有误您有更好的写法,欢迎留言。



