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--);
}
}
答案 0 :(得分:1)
您的输出似乎与您的输入相匹配,但您的输出显示您再次调用打印功能两次。输出匹配此序列的调用:
printBits('A');
printBits('M');
printBits('\0');
显示here(在修复打印功能中的语法错误后)。