编写一个程序,接受一个正整数 m 作为输入,然后返回这个数字的位数。用c语言来编写
时间: 2024-10-09 07:15:35 浏览: 31
C语言程序设计-编写函数判断一个整数m的各位数字之和能否被7整除,可以被7整除则返回1,否则返回0;调用该函数找出10
5星 · 资源好评率100%
在C语言中,你可以通过循环和除法操作来计算一个整数的位数。以下是一个简单的函数实现:
```c
#include <stdio.h>
int countBits(int m) {
int bit_count = 0;
while (m != 0) {
// 取出最低位并设置其为1(相当于右移一位)
m = m | (m >> 1);
// 计算左移一位后的二进制位数,加一即为当前位数
bit_count++;
}
return bit_count;
}
int main() {
int num;
printf("请输入一个正整数: ");
scanf("%d", &num);
if (num > 0) {
int bits = countBits(num);
printf("该数字有 %d 位\n", bits);
} else {
printf("输入错误,请输入一个正整数.\n");
}
return 0;
}
```
在这个程序中,`countBits` 函数接收一个整数 `m`,通过不断地将 `m` 和其右移一位的结果异或,可以保持最高位不变而其他位变为0,直到 `m` 变为0。这时,我们累计的 `bit_count` 就等于原数字的位数。
阅读全文