午夜精品久久久久久99热_免费无码成人AV在线播放不卡_性xxxx18免费观看视频_青青草原精品资源站久久_蜜桃AV电影

您當前的位置:首頁 > 供應(yīng)市場 >
一文搞定>>、>等位運算

時間:2023-09-08 12:27:27    來源:博客園

位運算在我們平時開發(fā)中很少會用到,以至于它被大多數(shù)人所忽略,因此在面試題中能頻繁的看到位運算的身影。


(資料圖片僅供參考)

由于位運算本質(zhì)是二進制運算,大多數(shù)開發(fā)者可能會對此比較陌生,本文旨在揭開位運算的神秘面紗,一同探究其本質(zhì),幫助大家掌握位運算的方法。

位運算包括以下幾類:

運算符運算規(guī)則范例
<<左移空位補0,被移除的高位丟棄,空缺位補0。3 << 2 = 12 --> 3*2*2 = 12
>>右移

被移位的二進制最高位是0,右移后,空缺位補0;

最高位是1,空缺位補1。

3 >> 1 = 1 --> 3/2 = 1
>>>無符號右移被移位二進制最高位無論是0或者是1,空缺位都用0補。3 >>> 1 = 1 --> 3/2 = 1
&與運算二進制位進行&運算,只有1&1時結(jié)果是1,否則是0。6 & 3=2
|

或運算

二進制位進行|運算,只有0|0時結(jié)果是0,否則是1。6 | 3 = 7
^異或運算

相同二進制位進行^運算,結(jié)果是0; 1^1 = 0,0^0 = 0

不相同二進制位^運算結(jié)果是1。1^0 = 1,0^1 = 1

6^3 = 5
~取反運算

正數(shù)取反,各二進制碼按補碼各位取反

負數(shù)取反,各二進制碼按補碼各位取反

~6 = -7

注意:運算符的運算過程都是基于二進制的補碼運算,需預(yù)先了解二進制(原碼、補碼、反碼)相關(guān)知識。

1.左移:<<

運算規(guī)則:在一定范圍內(nèi),數(shù)據(jù)每向左移動一位,相當于原數(shù)據(jù)*2。(正數(shù)、負數(shù)都適用)

【注意】當左移的位數(shù)n超過該數(shù)據(jù)類型的總位數(shù)時,相當于左移(n-總位數(shù))位,例:3 << 34 = 12,由于3的二進制總位數(shù)32,左移34相當于 3 << (34 - 32) --> 3 << 2 = 12。

3 << 4 -->  3*2的4次冪 => 3*16 => 48

二進制運算:

-3 << 4  -->  -3*2的4次冪 => -3*16 => -48

二進制運算:

2.右移:>>

運算規(guī)則:在一定范圍內(nèi),數(shù)據(jù)每向右移動一位,相當于原數(shù)據(jù)/2。(正數(shù)、負數(shù)都適用)

【注意】如果不能整除,向下取整。例:3.2 >> 1 = 1

69 >> 4  -->  69/2的4次 = 69/16 =4

二進制運算:

69 >> 4  -->  -69/2的4次 = -69/16 = -5

二進制運算:

3.無符號右移:>>>

運算規(guī)則:往右移動后,左邊空出來的位直接補0。(正數(shù)、負數(shù)都適用)

69 >>> 4  --> 69/2的4次 = 69/16 =4

二進制運算:

-69 >>> 4   結(jié)果:268435451

二進制運算:

4.按位與:&

運算規(guī)則:對應(yīng)位都是1才為1,否則為0。

1 & 1 = 1;1 & 0 = 0;0 & 1 = 0;0 & 0 = 0;9 & 7 = 1;-9 & 7 = 7;

二進制運算:

5.按位或:|

運算規(guī)則:對應(yīng)位只要有1即為1,否則為0。

1 | 1 = 1;1 | 0 = 1;0 | 1 = 1;0 | 0 = 0;9 | 7 = 15;-9 | 7 = -9;

二進制運算:

6.按位異或:^

運算規(guī)則:對應(yīng)位一個為1一個為0,才為1,否則為0。

1 ^ 1 = 0;1 ^ 0 = 1;0 ^ 1 = 1;0 ^ 0 = 0;9 ^ 7 = 14;-9 ^ 7 = -16;

二進制運算:

7.按位取反:~

運算規(guī)則:對應(yīng)位為1,則結(jié)果為0;對應(yīng)位為0,則結(jié)果為1。

~0 = 1;~1 = 0;~9 = -10;~-9 = 8;

二進制計算:

總結(jié):位運算的核心是二進制運算,掌握以上7種運算方法,位運算將變得不再困難!

腳踏實地行,海闊天空飛~

關(guān)鍵詞:

工程項目