c++ - 获取 int 中的位数

标签 c++ c

如何检测整数的长度?如果我有 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;

但必须有更简单或更干净的方法......

最佳答案

除法怎么样:

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

或使用 log10 中的 <math.h> 方法。

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

关于c++ - 获取 int 中的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11151548/

相关文章:

c++ - 函数指针的对齐要求

c++ - 我在哪里可以找到 arm-wince-pe-gcc 的二进制文件?

c++ - 遍历不同类型集合的通用代码

c++ - 为什么 C++ 库的地址清理构建会在 libcxx 类中产生不可重现的 ASAN 问题?

c - libxml2 + pblSet(或任何其他集)-无法比较结果

c++ - 如何检查字符常量是否符合ASCII?

c++ - 贪婪地分配分数以最大化最终结果

C - 如何在不使用分号的情况下显示 "Hello World"

c - 浮点值后缀 `f`有什么用

c - librdkafka 消费者和 ssl 配置