c语言输入一个 int范围内的正整数,输出该数有几位。 输出描述: 一个整数,表示n的位数。
时间: 2024-11-06 13:13:32 浏览: 53
c代码-读取一个正整数,显示其位数。
在C语言中,你可以通过取对数然后加一的方式来获取一个整数的位数。因为二进制下,对于任何非零正整数,其基数(2)的幂次决定了它的位数。例如,十进制数10有4位(2^2=4),100有3位(2^3=8)。以下是实现这个功能的一个简单函数:
```c
#include <stdio.h>
#include <math.h>
int countBits(int n) {
if (n == 0) return 1; // 特殊情况,0也有1位(最低位)
return (int)(log2(n)) + 1;
}
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
int bits = countBits(num);
printf("该数有 %d 位。\n", bits);
return 0;
}
```
在这个程序里,`countBits`函数计算输入数值的位数,`log2(n)`返回数字`n`以2为底的对数,加1是因为对数结果是个浮点数,我们需要向上取整到下一个整数。
阅读全文