(一)邏輯操作 &(與) |(或) ~(非) 非:
a~a10
01 與:
aba & b11
1100
0100
00 或:
aba | b11
1101
0110
00(二)條件運算 &&、||、!
非關係表:a!a
true
false
false
true 與:
aba && b
false
false
false
true
false
false
false
true
false
true
true
true 或:
aba || b
false
false
false
true
false
true
false
true
true
true
true
true
邏輯運算和條件運算的區別
a 條件操作只能是布林型的,而邏輯操作不僅可以操作布林型的,還可以運算元值型
b 邏輯操作不會發生短路
下面解釋一下短路的現象
如 if( 1==1 && 1==2 && 1==3)
**從左到右開始執行,指定第乙個表示式1==1是為true,因為是為true,然後就開始運算1==2,運算了第二個表示式過後結果如下:
true && false && 1==3
到了這個時候就不再運算下去了,因為在這種運算裡面第二個表示式為false,這種情況就短路了,因為不論最後乙個表示式為什麼,最終返回就已經是false,短路現象在&&和||中都是常見的,
再如:if( 1==1 &1==2 & 1==3)
雖然第二個條件檔案,但是程式還是會執行1==3.這樣就不存在短路的現象
(三) 位運算子
「>> 右移」;「<< 左移」;「>>> 無符號右移」
注意:右移相當於是除,左移相當於就是乘,左移一位乘以2,左移二位乘以4,依此類推。 無論正數、負數,它們的右移、左移、無符號右移32位都是其本身,
比如 -5<<32=-5、-5>>32=-5、-5>>>32=-5
如:-5>>3=-1 -5<<3=-40 5>>3=0 5<<3=40
-5>>>3=536870911
曾經有這樣的一道面試題:用最快的方法算出2乘以8等於幾?
答案:2<<3;
java基礎 位運算,條件運算
只有整型數才能作位運算 相當於乘2 相當於除2 如 double a 5 a a 3 error 必須是整型數才可以位運算 system.out.println a 運算子 x 先運算,後自增 x 先自增,後運算 短路與,當前乙個條件為false時,後乙個條件不運算 按位與,當前乙個條件為false...
C C 位操作 位運算
在c語言中,可以單獨操控變數的位 bit 一般高階語言不會處理這級別的細節,c在提供高階語言便利的同時,還能為組合語言所保留的級別上工作,這使其成為編寫裝置驅動程式和嵌入式 的首選語言。目錄 二進位制整數 binary 有符號整數 八進位制 octal 十六進製制 hex 位運算子 按位與 的用途 ...
JAVA中位運算與邏輯運算
位運算 位運算是將資料先轉化為二進位制數補碼形式,再逐位 bit 按規則計算 按位與 運算子 規則 全1則1,否則為0 按位或 運算子 規則 全0則0,否則為1。按位非 運算子 規則 遇1則0,遇0則1。按位異或 運算子 規則 相同為0,不同為1。邏輯運算 邏輯運算是對布林型資料 true或flas...