位運算(bit operate),即操作二進位制位的運算
& 按位與(都為1則為1,否則為0)
作用:迅速清零(eg:a&0);
判斷奇偶(eg:a&1 為1奇數,為0偶數);
檢查狀態
| 按位或(有乙個為1就為1,否則為0)
作用: eg,a|0xff a值為255; 因為0xff值為 11111111
//oc中的應用:新增狀態
nsdate* date =[nsdate date];
nscalendar* calendar =[nscalendar calendarwithidentifier:nscalendaridentifiergregorian];
nsdatecomponents* datecomponents = [calendar components:(nscalendarunityear|nscalendarunitmonth|nscalendarunitday|nscalendarunithour|nscalendarunitminute|nscalendarunitse cond) fromdate:date];
^ 按位異或(不同為1,相同為0)
作用:還原性
//交換兩個整數的位置
int a = 10;
int b = 20;
a = a^b;
b = a^b;
a = a^b;
nslog(@"a = %d b = %d",a,b);
~ 按位取反(位預算符中唯一乙個單目運算子)每個位置都取反(對應記憶體中存的值,如32bit系統的1表示為00000000 00000000 00000000 00000001)
<< 左移運算(將2進製值向左移動若干位)
作用:當數字要與2或2的倍數相乘時用,大大提高效率,相當於乘以2的移動位數次數方
>> 右移運算(將2進製值向右移動若干位)
作用:與左移運算子相反
Java學習筆記 位運算子
1 位運算子只能對整型 byte short int long char 運算。2 按位或 運算子,可以用作開關,比如 粗體 斜體 下劃線 中劃線。把他們分別用1 2 4 8中的乙個值代表,如果我們既要粗體,又要斜體,就可以開啟對應的開關。粗體0001 斜體0010 下劃線0100 中劃線1000 ...
基本運算子 邏輯運算子 位運算子等 學習筆記
冪運算 2 3 double pow math.pow 2,3 冪運算 boolean a true boolean b false system.out.println a b a b 邏輯與運算 兩個變數都為真,結果才為true system.out.println a b a b 邏輯或運算 ...
學習筆記(2) 邏輯運算子和位運算子
public class demo1 結果如下 a b false a b true a false 短路運算 和 的短路運算,是指如果前面的判斷條件已經明確結果則不執行後面的判斷 例如 public class demo1 結果如下 b false a 10 c true a 9 當判斷到 a 9...