第06 篇、位運算子- Java 程式設計

文章推薦指數: 80 %
投票人數:10人

位運算. 數據在計算機中是以二進制的方式存放; 位元運算:對整數的二進制進行操作假設: a = 0110 1001B 、 b = 0101 110B ... 首頁程式語言筆記Java程式設計#位運算數據在計算機中是以二進制的方式存放位元運算:對整數的二進制進行操作假設:a=01101001B、b=0101110Ba01101001Bb01011100B#位運算子二元運算子功能邏輯&按位“與”and|按位“或”or^按位“異或”xor~按位“變反”not#複合位運算子二元運算子功能範例說明&=複合與x&=y令x=x&y|=複合或x|=y令x=x|y^=複合異或x^=y令x=x^y#運算結果按位“與”&皆為1才為1A0011B0101結果0001按位“或”|任一者為1就為1A0011B0101結果0111按位“異或”^兩者不同才為1A0011B0101結果0110按位“變反”~0➡️1,1➡️0A0011結果1100位移運算使數值左移或右移指定的位數,如:左移兩位八位數76543210初始值01101001左移兩位01101001空位補0结果值溢出抹去10100100#應用運用按位“與”可以將某些位設置為0例如:我想將數字a的後半部變成0,只要其跟0做運算即可a=01101001B&b=11110000Bc=01100000B運用按位“或”可以將某些位設置為1例如:我想將數字b的前半部都轉成1,只要跟其跟1做運算即可a=01101001B|b=11110000Bc=11111001B運用按位“異或”可以將某些位相反,部分位保持不變和1“異或”變反1^1=00^1=1和0“異或”不變0^0=01^0=1例如:我想要將數字a的前半部變反,後半部保持不變a=01101001B^b=11110000Bc=10011001B#位移運算子位移運算子的目的是向左或向右移動目標運算元的每個位元二元運算子功能邏輯<>保留正負號的右移a>>b(將a向右移b個單元)>>>純粹的右移a>>>b#複合位移運算二元運算子功能範例說明<<=複合左移x<<=y令x=x<>=複合右移x>>=y令x=x>>y>>>=複合右移x>>>=y令x=x>>>y#運算結果無負號運算inta=16;intb=2;System.out.println(a<>b);//4System.out.println(a>>>b);//4有負號運算inta=-16;intb=2;System.out.println(a<>b);//-4System.out.println(a>>>b);//1073741820#應用運用位移運算子可以高速的運算*2或/2運算!!inta=3;System.out.println(a*2*2*2*2*2);//96System.out.println(a<<5);//96intb=20000;System.out.println(b/2/2/2/2/2);//625System.out.println(b>>5);//625自主學習程式語言筆記java上一篇Java程式設計第05篇、算術、關係、邏輯運算子下一篇Java程式設計第07篇、特殊運算子&型態轉換1.位運算1.1.位運算子1.2.複合位運算子1.3.運算結果1.4.應用2.位移運算子2.1.複合位移運算2.2.運算結果2.3.應用第01篇、Java簡介與物件導向設計第02篇、第一支Java程式第03篇、基本資料型態第04篇、變數第05篇、算術、關係、邏輯運算子第06篇、位運算子第07篇、特殊運算子&型態轉換第08篇、運算子優先級第09篇、流程控制&選擇語句第10篇、循環語句&標準輸入第11篇、陣列第12篇、包裹基本型態(wrap)第13篇、字串第14篇、函式第15篇、基本封裝第16篇、存取修飾子第17篇、套件與導入第18篇、內部類別第19篇、繼承第20篇、多型第21篇、抽象第22篇、介面第23篇、例外處理第24篇、Collection、List、Queue第25篇、Deque、Set、Map第26篇、Iterator的一般用法第27篇、Lambda表達式第28篇、執行緒第29篇、凍結執行緒&執行順序ZrnYe(。・∀・)ノ゙再苦再累也要堅強,只為那些期待眼神396文章23分類116標籤



請為這篇文章評分?