//二进制转八进制
//输入:szBin 二进制表示的字符串
//输出:szOct 八进制表示的字符串
void BinToOct(char *szBin, char *szOct)
{
int nLen = strlen(szBin);
if (nLen == 0) return;
int nPos = (nLen <= 3) ? 0 : nLen - 3;
char temp[4];
strcpy(temp, szBin + nPos);
szBin[nPos] = '\0';
BinToOct(szBin, szOct);//这里就是你要的入栈操作
int nOct = 0;
int nRadix = 1;
for (int i = strlen(temp) - 1; i >= 0; i--)
{
nOct += ((temp[i] - '0') * nRadix);
nRadix *= 2;
}
sprintf(temp, "%d", nOct);
strcat(szOct, temp);
//递归函数退出时就是出栈了
}