给定数字中位的反向顺序

时间:2017-09-21 15:43:28

标签: c binary reverse

我想要的程序询问用户输入一个数字,以二进制显示该数字,然后反转显示二进制数字中的位的顺序。

例如,如果我输入数字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;
}

1 个答案:

答案 0 :(得分:0)

打印时只需执行对应循环:

for (i = 0; i <= 7; i++) {
    printf("%d", (x & (1 << i)) >> i);
}