位運算中 x&(-x) 的意義是:
把x的二進制表示中,除了最右邊的一個“1”留下,其他全部變成0後的十進制表達。
例如: 10&(-10)=?
10的二進制表示的後4位為:1010,
-10的二進制表示的後4位為:0110;
由於10的二進制表示中除了後四位以外均為0,-10的二進制表示中除了後四位以外都是1,所以這些數取“與”運算的結果都是0,不予考慮。
所以:1010與0110取“與”運算的結果就是:
0010,即2。
應用:
11&(-11)=1 => 11(base 10)=1011(base 2) => 0001 =>1
12&(-12)=4 => 12(base 10)=1100(base 2) => 0100 =>4
沒有留言:
張貼留言