位移位運(yùn)算
如 UIViewAutoresizingFlexibleHeight = 1 << 4,
1.左移運(yùn)算 1 << 4
將一個(gè)運(yùn)算對(duì)象的各二進(jìn)制位全部左移若干位(左邊的二進(jìn)制位丟棄,右邊補(bǔ)0)。
1 轉(zhuǎn)化為二進(jìn)制為 :0000 0001
左移四位就為 :0001 0000
0001 0000 轉(zhuǎn)化為十進(jìn)制等于16
2.右移運(yùn)算 90>>4
將一個(gè)數(shù)的各二進(jìn)制位全部右移若干位,正數(shù)左補(bǔ)0,負(fù)數(shù)左補(bǔ)1,右邊丟棄。操作數(shù)每右移一位,相當(dāng)于該數(shù)除以2。
90轉(zhuǎn)化為二進(jìn)制為 :01011010
右移4位就是 :00000101
00000101 轉(zhuǎn)化為十進(jìn)制等于5
按位或運(yùn)算符(|)
運(yùn)算規(guī)則:0|0=0; 0|1=1; 1|0=1; 1|1=1;
即 :參加運(yùn)算的兩個(gè)二進(jìn)制對(duì)應(yīng)數(shù)位只要有一個(gè)為1,其值為1
例如:
[self todo:UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleHeight];
1.十進(jìn)制1|4|16 轉(zhuǎn)為二進(jìn)制0000 0001 | 0000 0100 | 0001 0000 = 0001 0101,因此,1|4|16的十進(jìn)制值得21
按位與運(yùn)算符(&)
參加運(yùn)算的兩個(gè)數(shù)據(jù),按二進(jìn)制位進(jìn)行“與”運(yùn)算。
運(yùn)算規(guī)則:0&0=0; 0&1=0; 1&0=0; 1&1=1;
即:兩對(duì)應(yīng)數(shù)位同時(shí)為“1”,結(jié)果才為“1”,否則為0
1.十進(jìn)制3&5 轉(zhuǎn)為二進(jìn)制 0000 0011 & 0000 0101 = 0000 0001 因此,3&5的值得1