>[success] # 位運算符
* `&` 表示按位與運算符,按照二進制位進行與運算,同1為1,一0為0,兩個二進制位數的位置如果都是1 即為1,一個為0即為0,和邏輯`&&` 一樣的如果 `1&&1 結果1` 如果 `1&&0 0&&1 結果為 0`
* `|` 表示按位或運算符,按照二進制位進行或運算,一1為1,同0為0,兩個二進制位數的位置如果都是0 即為0,一個為1即為1,和邏輯`||` 一樣的如果 `/ 1 || 1 ` `0 || 1` `1 || 0` 結果1` 如果 `0 || 0` 結果為 `0`
* `~` 表示按位取反運算符,按照二進制位進行取反,1為0,0為1,即`1111 1101` 取反 `0000 0010`
* `^` 表示按位異或運算符,按照二進制位進行異或運算,同為0,不同為1.
>[danger] ##### 案例
~~~
/*
編程實現位運算符的使用
*/
public class BitTest {
public static void main(String[] args) {
// 1.聲明兩個byte類型的變量并初始化
byte b1 = 11;
byte b2 = 13;
// 2.打印變量的數值
System.out.println("b1 = " + b1); // b1 = 11
System.out.println("b2 = " + b2); // b2 = 13
System.out.println("---------------------------------------------------");
// 3.實現位運算符的使用
// b1的二進制為: 0000 1011
// b2的二進制為: 0000 1101
System.out.println( b1 & b2); // 按位與:同1為1,一0為0 按位與后的二進制為:0000 1001 => 轉為十進制是:9
System.out.println( b1 | b2); // 按位或:一1為1,同0為0 按位或后的二進制為:0000 1111 => 轉為十進制是:15
System.out.println( b1 ^ b2); // 按位異或:相同為0,不同為1 按位異或的二進制為:0000 0110 => 轉為十進制是:6
System.out.println( ~ b1); // 按位取反:1為0,0為1 按位取反的二進制為:1111 0100
// 二進制1111 0100轉為十進制 => 先減1: 1111 0011 => 按位取反:0000 1100 => 轉為十進制:12 => 添加負號:-12
}
}
~~~
* `&`邏輯與(而且)? 兩邊都為真,結果才是真,只要有一個為假,那么結果就是假
* `|`邏輯或(或者) 兩邊都為假,結果才是假,只要有一個為真,那么結果就是真
* `^`(異或)如果兩邊相同,結果為false,如果兩邊不同,結果為true
~~~
// & //兩邊都是真,結果才是真。
System.out.println(true & true);//true
System.out.println(false & false);//false
System.out.println(true & false);//false
System.out.println(false & true);//false
System.out.println("===================================");
// | 或 //兩邊都是假,結果才是假,如果有一個為真,那么結果就是真。
System.out.println(true | true);//true
System.out.println(false | false);//false
System.out.println(true | false);//true
System.out.println(false | true);//true
~~~
- windows -- 環境變量
- Vscode -- 編寫java
- 初始java
- java -- 關鍵字
- 編寫第一個java程序
- java -- 注釋
- 計算機存儲 -- 進制
- java -- 類型
- java -- 變量
- 數字類型
- 布爾類型
- 字符類型
- 類型轉換
- 雙等比較是什么
- java -- 運算符
- 算數運算符
- 字符串拼接
- 關系/比較運算符
- 自增減運算符
- 邏輯運算符
- 三目運算
- 賦值運算符
- 移位運算符
- 位運算符
- 運算符優先級
- java -- 流程控制語句
- if /else if /if -- 判斷
- switch case分支結構
- for -- 循環
- 用雙重for循環
- while -- 循環
- do while -- 循環
- 案例練習
- java -- 數組
- 數組的存儲
- 數組的增刪改查
- 數組的特點
- 數組案例
- 二維數組
- 數組的工具方法
- java -- 方法
- java -- 方法的重載
- java -- 方法的調用流程
- java -- 類方法傳參注意事項
- java -- 方法練習案例
- 對比 return break continue
- for each循環
- java -- 基礎練習
- java -- 面向對象
- java -- 創建類和對象
- java -- 訪問控制符
- java -- 類成員方法
- java -- 構造方法
- java -- this
- java -- 封裝
- java -- 對象內存圖
- java -- 創建對象案例
- java -- static
- java -- 繼承
- super -- 關鍵字
- java -- 構造塊和靜態代碼塊
- java -- 重寫
- java -- final
- java -- 多態
- java -- 抽象類
- java -- 接口
- 引用類型數據轉換
- 綜合案例
- java -- 內部類
- java -- 回調模式
- java -- 枚舉類型
- java -- switch 使用枚舉
- java -- 枚舉方法使用
- java -- 枚舉類實現接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 遞歸練習
- java -- 設計模式
- 單例模式
- java -- 注解
- java -- 元注解
- Java -- 核心類庫
- java -- 處理字符串
- Java -- String
- String -- 常用方法
- String -- 正則
- Java -- StringBuilder 和 StringBuffer
- 知識點
- Java -- StringJoiner 字符串拼接
- 練習題
- 字符串的總結
- Java -- 包裝類
- Integer
- Double
- Boolean
- Character
- java -- 集合類
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 獲取當前時間戳
- Java -- 異常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法