按位與操作


按位與操作


會有追加嗎?首先 , 你的0376這個數字應該是8進制數吧 , 前面的0應該是八進制的識別符吧 。因此 , 0376的二進制就是1111 1110 , 二進制的與運算規則是 , 只有兩個數同時為1時 , 則結果才為1 , 只要有一個數為0 , 則結果就為0 。比如1&1=1; 1&0=0; 0&1=0; 0&0=0; 因此把一個字符與二進制1111 1110進行與運算的結果就是把最后位設為0 , 而其他位不變 。作個比喻假設a的二進制表示為1010 0111我們先不管這個數表示的是什么 , 我們來把這個數與1111 1110進行按位與運算 , 看看結果 。1010 0111 & 1111 1110結果為 1010 0110可以看到只是把最后一位設為0了 , 其他位不變 。現在明白了? 補充回答:不會變為1 , 看來你還是沒有明白按位與的運算規則啊 , 運算規則是兩個數同時為1結果才為1 , 不是兩個數相同 , 兩個數相同為1的運算是按位異或 。也就是說按位與運算時 , 只要有一個操作數為0 , 計算結果就為0 , 理在懂了? 1010 0111 & 1010 0110結果為1010 0110明白了??
【按位與操作】

    猜你喜歡