函数形参是一个 unsigned short 型的正整数(2 字节),函数返回值是实参传递给形参 后,它的二进制形式包含1的个数。比如:127,对应的二进制为0111 1111,返回值为 7. 编写该函数并测试。用c语言写出代码
时间: 2024-12-25 10:25:05 浏览: 2
在C语言中,你可以创建一个名为`count_set_bits`的函数来计算一个无符号短整型变量的二进制表示中1的个数。下面是一个简单的实现:
```c
#include <stdio.h>
unsigned int count_set_bits(unsigned short num) {
unsigned int count = 0;
while (num != 0) {
count += num & 1; // 每次左移一位并检查最低位是否有1
num >>= 1; // 右移一位
}
return count;
}
// 测试函数
int main() {
unsigned short test_case1 = 127;
printf("For %u, the number of set bits is %u\n", test_case1, count_set_bits(test_case1));
unsigned short test_case2 = 0;
printf("For %u, the number of set bits is %u\n", test_case2, count_set_bits(test_case2));
unsigned short test_case3 = 15; // 二进制为1111,有四个1
printf("For %u, the number of set bits is %u\n", test_case3, count_set_bits(test_case3));
return 0;
}
```
这个`count_set_bits`函数通过不断地将输入数字右移一位并检查最低位是否有1(如果最低位是1,`num & 1`的结果会是1),直到所有的位都被检查过。
阅读全文