请给我解释下这段程序
#include<iostream.h>#include<stdio.h>
#include<stack>
void main()
{
int number;
int n;
std::stack<int> sta;
cin>>number;
while(number)
{
n=number%16;
sta.push(n);
number=number/16;
}
for(int i=0;i<=sta.size();i++)
{
if(sta.top()>=0&&sta.top()<=9)
printf("%d",sta.top());
else
printf("%c",sta.top()+55);
sta.pop();
}
cout<<endl;
}
红色部分不懂请帮忙解释下,我才开始学