1

printBits('A') 的输出假设为 0100 0001,但我得到的是 0100 0001 0100 1101 0000 0000。我似乎无法在下面的代码中找出问题所在。

unsigned char getBit(unsigned char c, int n) {
  return c=(c&(1<<n))>>n;

}


void printBits(unsigned char c) {
  int i=7;
  while(i>=0){
    printf("%d", (getBit(c,i--);
  }
}
4

1 回答 1

1

您的输出似乎与您的输入匹配得很好,但您的输出显示您又调用了两次 print 函数。输出与以下调用序列匹配:

printBits('A');
printBits('M');
printBits('\0');

此处显示(在您的打印函数中修复语法错误之后)。

于 2013-10-05T19:16:53.963 回答