获取 int 中的位数

新手上路,请多包涵

如何检测整数的长度?如果我有 le: int test(234567545);

我怎么知道 int 有多长?就像告诉我里面有9个数字???

*我努力了:**

 char buffer_length[100];

    //  assign directly to a string.

    sprintf(buffer_length, "%d\n", 234567545);

    string sf = buffer_length;

    cout <<sf.length()-1 << endl;

但必须有一种更简单或更干净的方法……

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

阅读 671
2 个回答

怎么划分:

 int length = 1;
int x = 234567545;
while ( x /= 10 )
   length++;

或使用来自 <math.h>log10 方法。

请注意 log10 返回一个 double ,因此您必须调整结果。

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

len=1+floor(log10(n));//c++代码库(cmath)

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

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