位運算筆記

2021-06-13 04:54:07 字數 1496 閱讀 2874

10—>1010

12-->1100

&與例如:以下按位比較,當兩個同時為1則為1,否則為0

10—>1010

12-->1100

結果為:

8-->1000

|或例如:以下按位比較,當兩個有任何乙個為1則為1,否則為0

10—>1010

12-->1100

結果為:

14-->1110

^非例如:以下按位比較,當兩個數不同時則為1否則為0。

10—>1010

12-->1100

結果為:

6-->0110

在32的機器上
// 00000000 00000000 00000000 00000101 這是5

// 11111111 11111111 11111111 11111010 這是5取反的結果-6

// ~是取反:

system.out.println(integer.tostring(5, 2));

system.out.println("-5取反:" + ~-5+"|規律:當前數+1在 在變為正數值或負數,如:-5+1=abs(-4)=4");

system.out.println("5取反:" + ~5+"|規律:當前數+1在 在變為正數值或負數,如:5+1=-6");

// >>>1 相當於 num/2(n) 無符號右移

// >>1 相當於 num/2(n)

// <<1 相當於 num*2(n)

system.out.println(111 >> 2);//27

system.out.println(300 >>> 1);//150

system.out.println(111 << 1);//222

十進位制,二進位制互轉實現思路

/**

* 二進位制轉換十進位制 -只使用者來便於掌握轉換規律

* 該方法只能準換簡單的正數值

* * @param str

* @return

*/public static int binary_algorism(string str) else if (index == 1) else

total += y;}}

} return total;

} /**

* 十進位制轉換二進位制-只使用者來便於掌握轉換規律

* 該方法只能準換簡單的正數值

* @param num

* @return

*/public static string algorism_binary(int num) else

num = temp;

} string str = "";

for (int i = builder.length() - 1; i >= 0; i--)

return str;

}

筆記 位運算

1 格式 x y 2 規則 對應位均為1時才為1,否則為0。例如,3 9 1 0011 1001 0001 3 主要用途 取 或保留 1個數的某些位,其餘各位置0。1 格式 x y 2 規則 對應位均為0時才為0,否則為1 3 9 11。例如,3 9 11 0011 1001 1011 3 主要用途...

位運算筆記

需要掌握的知識 原碼 反碼 補碼 原碼 是最簡單的機器數表示法。用最高位表示符號位,1 表示負號,0 表示正號。其他位存放該數的二進位制的絕對值。1010 最高位為 1 表示這是乙個負數,其他三位為 010 即 0 2 2 1 2 1 0 20 2 表示冪運算子 所以1010表示十進位制數 2 面臨...

位運算 筆記

這幾天擼了一下位運算。寫個筆記總結一下。首先運算了解一下。按位與 按位或 按位異或 取反 左移 右移 這一題,我們本來可以不停除2,看最後是否等於1 但是掌握了上面我們說的思想以後。就直接簡單了。只需要兩行 class solution 因為如果是2的冪 那麼它的二進位制必定只有乙個1.去掉了最後乙...