Android中的位運算

2021-08-21 23:39:14 字數 873 閱讀 5876

android在編碼的時候經常使用到位運算,這裡以intent的flags為例。(檢視intent說明文件)

publicstaticfinalintflag_activity_new_task = 0x10000000;

publicstaticfinalintflag_activity_single_top = 0x20000000;

publicstaticfinalintflag_activity_multiple_task = 0x08000000;

再來看看1|2|4|8分別對應的二進位制數:

1 : 0001

2 : 0010

4 : 0100

8 : 1000

注意:它們通過「或運算」可以組成1~15的數,並且不會出現兩種或兩種以上的相同情況。

由這個特點,在程式中可以巧妙的使用,目前我發現android原始碼中常使用的幾個地方:

一、通過intent flags對應的值,可以將多種標誌通過「或運算」來進行組合,

以下**是intent新增標誌,使用到「或(|)」運算:

全文參考

Java 中的位運算

移位運算子 包括 右移 左移 無符號右移 例子 5 3 1 1111 1111 1111 1111 1111 1111 1111 1011 1111 1111 1111 1111 1111 1111 1111 1111 其結果與 math.floor double 5 2 2 2 完全相同。5 3 ...

Java 中的位運算

計算機中的原碼 反碼和補碼 移位運算子 包括 右移 左移 無符號右移 例子 5 3 1 1111 1111 1111 1111 1111 1111 1111 1011 1111 1111 1111 1111 1111 1111 1111 1111 其結果與 math.floor double 5 2...

Java 中的位運算

移位運算子 包括 右移 左移 無符號右移 例子 5 3 1 1111 1111 1111 1111 1111 1111 1111 1011 1111 1111 1111 1111 1111 1111 1111 1111 其結果與 math.floor double 5 2 2 2 完全相同。5 3 ...