前言:
在我們學習編程時候往往需要遇到邏輯運算這時我們
就需要接觸到 位運算子 這個概念

不知道大家有沒有像我一樣經常容易把運算子的關系搞錯
在經歷了,無數次錯誤之后我總結出了一套(傻瓜式)記憶
方法 下面就由我來給大家細品這幾個最常用的運算子號
位操作是程式設計中對位模式按位或二進制數的一元和二元操作,
在許多古老的微處理器上, 位運算比加減運算略快, 通常位運算比乘除法運算要快很多,
在現代架構中, 情況并非如此:位運算的運算速度通常與加法運算相同(仍然快于乘法運算),
位運算子用來對二進制位進行操作,Java中提供了如下表所示的位運算子:位運算子中,除 ~ 以外,其余均為二元運算子, 百度百科
JAVA中常用的四種位運算子:
& 按位與
| 按位或
^ 按位異或
~取反
這時大家都會疑問和網上講到的有什么不一樣么
那么問題來了我們如何巧妙的記住他們的使用方法呢???

哈哈哈,那就話不多說咱們直接開始
1,&按位與(聯想記憶法)
想象把電燈點亮比做 真 JAVA(true)C語言(1)
反之電燈點不亮則為 假 JAVA(false)C語言(0)
此時我們只要將與———&運算子
想象成一個串聯電路
如圖: 這是一個簡單不過的串聯電路 必須將兩個開路電路閉合 我們的負載燈泡才能正常運轉

這時 我們將圖比作 : 10>20 & 20>10
那么此時 10>20為假 則 20>10 為真 按照我們 (&按位與)來說有其一為假則結果為 假
如圖:

很遺憾燈泡沒有點亮
那么 我們將運算子改一改試試 : 10<20 & 20>10
那么此時 10<20為真 則 20>10 為真 按照我們 (&按位與)來說只要兩個都為真則結果為 真
如圖:

恭喜你燈泡成功被點亮
綜上所述:我們在使用&按位與的時候可以將其想象為串聯電路只要有一個點是斷路(假)
則此次運算結果就為 假,這就是&的記憶方法,大家明白了么
2,| 按位或(聯想記憶法)
如上
想象把電燈點亮比做 真 JAVA(true)C語言(1)
反之電燈點不亮則為 假 JAVA(false)C語言(0)
此時我們只要將與———| 運算子
想象成一個并聯電路
如圖:這是一個并聯電路它的兩個開路開關只要有一個閉合則 燈泡就可以正常點亮

同樣此時這時 我們將圖比作 : 10>20 | 20>10
那么此時 10>20為假 則 20>10 為真 按照我們 (| 按位或)來說有其一為真則結果為 真
如圖:

恭喜你燈泡成功被點亮
接下來那么 我們將運算子同樣改一改試試 : 10<20 | 20>10
那么此時 10<20為真 則 20>10 為真 按照我們 (| 按位或)來說就算兩個為真則結果還是為 真
如圖:

恭喜你燈泡成功被點亮
綜上所述:我們在使用 | 按位或的時候可以將其想象為并聯電路只要有一個點是閉路(真)
則此次運算結果就為 真,這就是| 的記憶方法,大家明白了么
3,^按位異或(聯想記憶法)
這個相對來說比較簡單想象兩張圖片分別找不同
不同的地方畫圈則為 真
反正相同的地方的則為 假
JAVA(true)C語言(1)
如圖:

我們將圖片看作 : 0000 0110
0011 1011
————————
0011 1101
按位^異或 一樣的是0,不一樣的是1
綜上所述:其實我們很簡單就看出來本質上就是找不同而已,
只要記住相同為0不同為1就可以
4,~按位取反(聯想記憶法)
和名字一樣,只要記住全部取反即可
如圖:
我們將圖片看作 : 0000 0110
1111 1001
按位~取反 字面意思直接取反即可
由于太簡單了我就懶得畫了,今天的知識大家學會了么,
歡迎評論點贊三連

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/316600.html
標籤:java
