-1“無符號”右移10位後是怎麼變成4194303的!

        Java中增加了一種“無符號”右移操作符(>>>),它使用“零擴展”:無論正負,都在高位插入0。這一操作符是C或C++中所沒有的!

        整數-1右移10位後怎麼變成4194303的呢?原來,-1在32位計算機內採用補碼錶示後是:11111111111111111111111111111111,即32個1。再無符號右移10位只剩下22位1,因爲高十位全是0,這樣就變成1111111111111111111111,換算成整數就是4194303了!有興趣的讀者可以寫一段程序測試一下! 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章