输入一个十进制整数,倒序输出对应的二进制数。
时间: 2024-09-15 15:15:24 浏览: 62
要实现这个功能,你可以使用C语言中的位操作和循环结构。这里是一个简单的程序示例,它接受一个十进制整数,然后将其转换为二进制并按相反的顺序打印出来:
```c
#include <stdio.h>
// 用于存放中间结果的数组
char binary[32];
void reverse_binary(int num) {
int i = sizeof(binary) - 1; // 从后往前开始计数
while (num != 0) {
binary[i] = num % 2 + '0'; // 将余数转为字符并存入数组
num /= 2; // 向左移位
i--;
}
if (binary[0] == '0' && strlen(binary) == 1) { // 如果全是零,不打印
return;
}
// 反转字符串
for (i = 0; i < (strlen(binary) / 2); i++) {
char temp = binary[i];
binary[i] = binary[strlen(binary) - i - 1];
binary[strlen(binary) - i - 1] = temp;
}
printf("Reversed binary representation of the number is: %s\n", binary);
}
int main() {
int decimal;
printf("Enter a decimal integer: ");
scanf("%d", &decimal);
reverse_binary(decimal);
return 0;
}
```
在这个程序中,我们首先定义了一个字符数组`binary`来存储二进制数字。然后,我们在`reverse_binary`函数中用while循环将输入的十进制数不断除以2取余数,并将每个余数(用1或0表示)存入数组。接着,如果数组的最前面是0并且只有一个元素,那么就是0,不需要输出。否则,我们将数组反转并打印。
在`main`函数中,我们从用户那里获取输入的十进制数,并调用`reverse_binary`函数进行处理。
如果你运行这个程序,只需按照提示输入一个十进制整数,它就会输出该数的倒序二进制表示。
阅读全文