我想要的程序询问用户输入一个数字,以二进制显示该数字,然后反转显示二进制数字中的位的顺序。
例如,如果我输入数字1,输出显示为00000001,反之则打印为10000000.我已经能够将数字转换为二进制,但我不确定如何获得反向输出。
有什么建议吗?我在下面提供了我的代码,以便我可以在此程序中显示我所处的位置。
void print_bits(unsigned char x) {
int i = 0;
for (i = 7; i >= 0; i--) {
printf("%d", (x & (1 << i)) >> i);
}
printf("\n");
}
int main(int argc, char * argv[]) {
unsigned char x;
printf("Enter a number: ");
scanf("%hhu", &x);
printf("Bits: ");
print_bits(x);
return 0;
}
答案 0 :(得分:0)
打印时只需执行对应循环:
for (i = 0; i <= 7; i++) {
printf("%d", (x & (1 << i)) >> i);
}