C语言位数统计
时间: 2023-07-02 22:07:16 浏览: 56
统计一个整数在二进制、八进制、十进制、十六进制下的位数可以使用以下代码:
```c
#include <stdio.h>
// 统计二进制位数
int countBinaryBits(int n) {
int count = 0;
while (n != 0) {
n = n >> 1;
count++;
}
return count;
}
// 统计八进制位数
int countOctalBits(int n) {
int count = 0;
while (n != 0) {
n = n >> 3;
count++;
}
return count;
}
// 统计十进制位数
int countDecimalBits(int n) {
int count = 0;
while (n != 0) {
n = n / 10;
count++;
}
return count;
}
// 统计十六进制位数
int countHexBits(int n) {
int count = 0;
while (n != 0) {
n = n >> 4;
count++;
}
return count;
}
int main() {
int n = 12345;
printf("二进制位数:%d\n", countBinaryBits(n));
printf("八进制位数:%d\n", countOctalBits(n));
printf("十进制位数:%d\n", countDecimalBits(n));
printf("十六进制位数:%d\n", countHexBits(n));
return 0;
}
```
输出结果:
```
二进制位数:14
八进制位数:6
十进制位数:5
十六进制位数:4
```
其中,使用位运算右移操作(`>>`)统计二进制、八进制、十六进制位数,使用整除操作(`/`)统计十进制位数。