这段代码试图将一个十进制数 `a` 转换为以 `b` 为基数的表示,并以十进制整数的形式返回(例如,将十进制 10 转换为二进制会返回 1010)。但代码中存在逻辑错误。 - 在 `convert_to_base` 函数中,`while ( n >= 0)` 这个条件会导致无限循环,因为当 `n` 变为 0 时循环仍会继续,而 `n /= p` 会让 `n` 一直为 0。你应该考虑循环何时应该停止。 - 在循环内部,`cymma = octatok * o10;` 这一行每次都会覆盖 `cymma` 的值,而不是累加。你需要将每次计算出的位值加到 `cymma` 上,而不是直接赋值。