(基礎)java中的位運算

2021-09-01 19:50:22 字數 693 閱讀 7462

位運算效率最高!

異或 ^

小應用:資料加密解密

乙個數異或另乙個數兩次,則還原

a^b^b = a

a^b --->加密 c^b = a --->解密

左移 <<

左移n位等效於 乘以2的n次冪  , 3<<2 = 3*2*2

右移 >>

右移一位等效於 除以2, 8>>2 = 8/2/2

被移動的高位用原來的高位來補,原來是0就用0補,是1就用1補,保證符號位不變

無符號右移動 >>>

>>>與》的區別:

不論高位是0還是1,都用0來補高位。

小應用

不使用第三變數,互動2個數的值

第一種方案,異或

public static void main(string args)
第二種方案,求和,存在超過資料型別範圍的可能

public static void main(string args)
第三種方案,求差

public static void main(string args)

java基礎 位運算,條件運算

只有整型數才能作位運算 相當於乘2 相當於除2 如 double a 5 a a 3 error 必須是整型數才可以位運算 system.out.println a 運算子 x 先運算,後自增 x 先自增,後運算 短路與,當前乙個條件為false時,後乙個條件不運算 按位與,當前乙個條件為false...

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...