Java移位操作符以及按位操作符

2021-08-20 07:47:02 字數 836 閱讀 4099

按位操作符:針對兩個整數引數中的對應位執行布林代數運算,並生成乙個結果。

按位與&:如果兩個輸入位都是1則生成乙個輸出位1,否則生成乙個輸出位0。

按位或|  :如果兩個輸入位只要有一位是1則生成乙個輸出位1.否則生成乙個輸出位為0。

按位異或^:如果兩個輸入位只有其中一位是1那麼生成輸出位1,否則生成乙個輸出位為0。

按位非~:取反,輸入0則輸出1,輸入1則輸出0。

移位操作符:只可用來處理整數型別。

<

>>:右移位操作符,按照操作符右側指定的位數將操作符左邊的運算元右移,如果符號為正高插入0,如符號為負高位插入1。

>>>:無符號右移位操作符,跟右移位操作符功能一樣,差別在於無論正負高位插入0。

<<=,>>=,>>>=:表示將移位後的結果重新賦給左邊。此時有精度問題有可能得到的不是正確的值。根據基本型別來看,從低精度到高精度依次為:

byte>short>int>long>float>double。如果低精度到高精度的話,例如byte或short進行右移位運算,會先被轉成int型別,再進行移位,然後截尾賦值給原理的型別。

Java 移位操作符

左移運算子,按照操作符右側指定的位數將操作符左邊的運算元向左移動 在低位補零 例如 num 1,相當於num乘以2 左移的規則只記住一點 丟棄最高位,0補最低位 運算規則 按二進位制的形式把所有數字向左移動對應的位數,高位移出 捨棄 高低位的空位補0.如果移動的位數超過了該型別的最大位數,編譯器會對...

c語言操作符 位操作符 移位操作符

1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...

按位操作符

按位操作符 用來操作整數基本資料型別中的單個 bit 對兩個引數中對應的位執行布林代數計算,最終生成乙個結果 1.二元操作符 如果兩個輸入位都是1,則按位 與 操作符 生成乙個輸出位1,否則生成乙個輸出位0,如果兩個輸入位有乙個是1,則按位 或 操作符 生成乙個輸出位1,只有兩個輸入位都是0時,才會...