C - 如何找到整数的长度

新手上路,请多包涵

我正在尝试找到一种方法来查找整数的长度(位数),然后将其放入整数数组中。该作业还要求在不使用 STL 的类的情况下执行此操作,尽管程序规范确实说我们可以使用“通用 C 库”(我会问我的教授是否可以使用 cmath,因为我假设 log10(num) + 1 是最简单的方法,但我想知道是否还有其他方法)。

啊,这不必处理负数。仅非负数。

我正在尝试创建一个变体“MyInt”类,它可以使用动态数组处理更广泛的值。任何提示将不胜感激!谢谢!

原文由 user1888527 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 647
2 个回答

整数 n 在任何基数中的位数可以通过除法得到,直到你完成:

 unsigned int number_of_digits = 0;

do {
     ++number_of_digits;
     n /= base;
} while (n);

原文由 Kerrek SB 发布,翻译遵循 CC BY-SA 3.0 许可协议

您还可以使用此功能:

 int countlength(int number)
{
    static int count = 0;
    if (number > 0)
    {
        count++;
        number /= 10;
        countlength(number);
    }
    return count;
}

原文由 M.Jafar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题