js 移位操作符__js

來源:互聯網
上載者:User

1、左移運算

 

   左移運算由兩個小於符號表示(<<)。它把數字鐘的所有數位向左移動指定的數量。例如,把數字2左移5位沒結果為64(等於二進位中的1000000)。

 

   var iOld = 2;   //二進位位10

 

   var iNew = iOld << 5;   //二進位位1000000 等於 64

 

   注意,在左移數位時,數字右邊多出5個空位。左移運算用0填充這些空位,使結果為完整的32位元字。

 

   左移操作保留數位符號位。例如,如果把-2左移5位,得到的是-64,而不是64。需要注意的是,符號(二進位中的第32位)仍然儲存在第32位中。上面代碼2的左移詳解如下:

 

   0000 0000 0000 0000 0000 0000 0000 0010 = 2

   0000 0000 0000 0000 0000 0000 0100 0000 左移5位(空白處由0補充) = 64

 

   2、有符號右移運算

 

   有符號右移運算子由兩個大於符號(>>)表示,它把32位元字中的所有數位整體右移,同時保留該數位符號(正號或負號)。有符號右移運算恰好與左移運算相反。例如,把64右移5位,將變為2:

 

   var iOld = 64;   //二進位為:1000000

 

   var iNew = iOld >> 5;   //二進位為:10 ,結果為2

 

   同樣,移動數位後會造成空位。空位位於數位左側,但位於符號位(二進位的第32位)之後。空位使用符號位填充:(就是說如果二進位第32位是1,那麼空位都由1填充,反之雷同。)

 

   0000 0000 0000 0000 0000 0000 0100 0000 = 64

   0000 0000 0000 0000 0000 0000 0000 0010 = 2

  

   3、無符號右移運算

 

   無符號右移由三個大於符號(>>>)表示,它將把無符號 32位元中的所有數位整體右移。對於整數,無符號右移運算的記過與有符號由於運算一樣。用有符號右移運算的中例子,把64右移5位,將變為2。對於負數, 情況就不同了。無符號右移運算用0填充所有空位。對於整數,這與有符號右移運算的操作完全一樣,而負數則被作為整數來處理。由於無符號右移運算的記過是一 個32位的正數,所以負數的無符號右移運算得到的總是一個非常大的數字,例如把-64右移5位,其結果為134217726。

 

   要實現這一點,需要把這個數字轉換成無符號的等價形式(儘管該數字是有符號或有負號的),可以通過以下代碼獲得這種形式:

 

   var iUnsigned64 = -64 >>> 0;  

 

   然後,用Number類型的toString()方法擷取它的真正的位表示,採用的基數為2: alert(iUnsigned64.toString(2));

 

   這將產生:1111 1111 1111 1111 1111 1111 1100 0000,既有符號整數-64的二進位補碼錶示,不過它等於不帶正負號的整數4294967232.處於這種原因,使用無符號右移運算子要小心。


原文地址: http://blog.csdn.net/aerchi/article/details/23163119

本文禁止採集。

作者地址:http://www.aerchi.com

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.