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--);
}
}
如果你想得到一個值'c'的位'n',爲什麼不只是'(c >> n)&1'? –
也爲什麼你的方法返回'char'?如果它返回一個「bool」值,那將是更多的邏輯。 – SJuan76
這是從你的實際代碼中剪切和粘貼的嗎?它不會編譯。 – jxh