(帮偶看看)从十进制到十六进制的算法~~~~~~~~~
#include<iostream.h>;
char change(int num);
struct stack
{int *top;
int *base;
};
void initstack(stack &s)
{s.top=s.base=new int[100];
}
void pop(stack &s,int &p)
{p=*(--s.top);
}
void push(stack &s,int p)
{*(s.top++)=p;
}
int main()
{
int num;
int yushu=0;
stack s;
initstack(s);
int temp;
cin>;>;num;
while(num!=0)
{
yushu=num%16;
num=num/16;
push(s,yushu);
}
while(s.top!=s.base)
{pop(s,temp);
cout<<change(temp);}
cout<<"H"<<endl;
}
char change(int num)
{
switch(num)
{
case 10: return 'A';break;
case 11: return 'B';break;
case 12: return 'C';break;
case 13: return 'D';break;
case 14: return 'E';break;
case 15: return 'F';break;
}
return num+48;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
其实如果不限定toHex()的参数一定是int的话,可以直接
复制代码
复制代码
# gcc -o hex hex.c
# ./hex 12345
没有错误处理和参数判断,只是一个原型