1
我想實現簡單的C語言代碼,因爲我是初學者。
我第一次使用OR
操作在緩衝區8位大小然後應用右移操作。
我發現了一些奇怪的事情,有時我會加1,而不是0 &某些情況下正確添加0。爲什麼將操作移動1不是0?
我的代碼:
char buffer[0]={0x7e};
int bitsetcounter;
int bitCounter;
int s=1;
int main() {
if (s=1) {
buffer[0]=buffer[0]|0x80;
bitsetcounter++;
bitCounter++;
}
buffer[0] >>=1;
printf("the buffer is %x",buffer[0]& 0xff);
}
輸出>>緩衝區是FF。 這裏爲什麼這樣的輸出?如果我通過添加0值轉移,我應該有7F不是ff?
你或許應該學習任務之間的'='和相等比較'的差異= ='。 –
'char'可能是在您的平臺上簽名的,所以您可能正確地移除了一個負數(這是不允許的)。 –
哦,我知道了非常感謝你:) –