4、小眾運(yùn)算符の大課堂(二)

較為復(fù)雜の位運(yùn)算符:

''<<'':左移 左邊最高位丟棄,右邊補(bǔ)齊0

'>>':右移 最高位是0,左邊補(bǔ)齊0;最高為是1,左邊補(bǔ)齊1

'>>>':無符號右移 無論最高位是0還是1,左邊補(bǔ)齊0

舉例:

class OperatorDemo3 {
    public static void main(String[] args) {
    
    System.out.println(3 << 2); 
    System.out.println(-24 >> 2); 
    System.out.println(-24 >>> 2);
    
    }
}


3 << 2:
    計(jì)算出3的二進(jìn)制:11
    00000000 00000000 00000000 00000011
    000000 00000000 00000000 0000001100
    結(jié)果:12
    
-24 >> 2:
    計(jì)算出24的二進(jìn)制:11000
    原碼:10000000 00000000 00000000 00011000
    反碼:11111111 11111111 11111111 11100111
    補(bǔ)碼:11111111 11111111 11111111 11101000
    
    補(bǔ)碼的運(yùn)算:
    11111111 11111111 11111111 11101000
    11111111 11111111 11111111 11111010(00) 
    
    補(bǔ)碼:1111111111 11111111 11111111 111010
    反碼:1111111111 11111111 11111111 111001
    原碼:1000000000 00000000 00000000 000110
    結(jié)果:-6
    
-24 >>> 2:
    計(jì)算出24的二進(jìn)制:11000
    原碼:10000000 00000000 00000000 00011000
    反碼:11111111 11111111 11111111 11100111
    補(bǔ)碼:11111111 11111111 11111111 11101000
    
    11111111 11111111 11111111 11101000
    0011111111 11111111 11111111 111010(00)
    
    結(jié)果:1073741818
內(nèi)存中的所有運(yùn)算,都要換成補(bǔ)碼運(yùn)算,正數(shù)的補(bǔ)碼和原碼一致,但負(fù)數(shù)的補(bǔ)碼與原碼大相庭徑!需注意。

面試題:

    請用最有效率的方式寫出計(jì)算2乘以8的結(jié)果?
        2 × 8 = 2 × 2^3
        2 << 3
    舉一反三:任何數(shù)乘以2的n次方,都可以用左移運(yùn)算符來快速計(jì)算。
        3 × 64 = 3 × 2^6
        3 << 6

.
.

?To Be Continue...?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ?運(yùn)算符的作用是操縱對象和數(shù)據(jù),它以一個(gè)或多個(gè)變量為基礎(chǔ),生成新的值。?運(yùn)算符具有優(yōu)先級和結(jié)合性。優(yōu)先級決定一個(gè)表...
    我是我我也不是我閱讀 2,558評論 0 3
  • 基礎(chǔ) .NET概述 參考:http://www.cnblogs.com/yplong/p/3279934.html...
    donite閱讀 1,731評論 0 8
  • iOS的UIViewController 類給我們提供了處理內(nèi)存不足的接口。 在iOS 3.0 之前,當(dāng)系統(tǒng)的內(nèi)存...
    Neo_帥閱讀 12,056評論 1 9
  • argc是命令行總的參數(shù)個(gè)數(shù) argv[]是argc個(gè)參數(shù),其中第0個(gè)參數(shù)是程序的全名,以后的參數(shù)命令行后面跟的用...
    金石明鏡閱讀 1,531評論 0 1
  • 我是怎麼了 為什麼不知道我要什麼 我會(huì)不會(huì)對不起她 我真的不想傷害任何人 這是最好的辦法 至少 最後她並不後悔 我...
    showloandy閱讀 292評論 0 0

友情鏈接更多精彩內(nèi)容