用c语言写一段代码,实现:输入一个任意整数(int型),输出其位数并逆序输出该数。
时间: 2024-10-20 16:16:09 浏览: 31
输入一个整数,输出其位数并逆序输出
在C语言中,你可以通过位运算和循环来实现这个功能。首先计算整数的位数,然后从最高位开始逐位取出来并反转顺序输出。以下是相应的代码:
```c
#include <stdio.h>
// 计算整数的位数
int countBits(int num) {
int bitCount = 0;
while (num != 0) {
num &= num - 1; // 将最低置零位设为0
bitCount++;
}
return bitCount;
}
// 取反序输出整数的每一位
void reversePrint(int num, int bitCount) {
for (int i = bitCount - 1; i >= 0; i--) {
if ((num & (1 << i)) > 0) { // 如果第i位为1,则输出1
printf("%d", 1);
} else { // 否则输出0
printf("%d", 0);
}
}
}
int main() {
int inputNum;
printf("请输入一个整数:");
scanf("%d", &inputNum);
int bitCount = countBits(inputNum);
printf("\n原数的位数:%d\n", bitCount);
reversePrint(inputNum, bitCount);
printf("\n逆序后的数字:");
return 0;
}
```
在这个代码里,`countBits`函数用于计算整数的二进制表示中有多少个1,即位数;`reversePrint`函数则负责按照相反的顺序打印出每位的值。
阅读全文