如何实现读取变量每一位的函数?

时间:2013-10-05 19:07:12

标签: c bitmask

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--);
  }
}

1 个答案:

答案 0 :(得分:1)

您的输出似乎与您的输入相匹配,但您的输出显示您再次调用打印功能两次。输出匹配此序列的调用:

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

显示here(在修复打印功能中的语法错误后)。