C#中的移位元運算

來源:互聯網
上載者:User

C#中的移位元運算    

在電腦裡面,對有符號類型數中的負數是以二進位補碼的形式儲存的,那麼怎樣得到該補碼形式的位元的十進位數值呢?

1)    對該二進位補碼形式的數的所有位(包括符號位)取反,然後1(二進位運算)。

2)    將得到的數當作一個無符號數計算出其十進位的值,前面加一個符號即得結果。

================================================================================

//  1 : 0 0000000 00000000 00000000 00000001

// -1 : 1 0000000 00000000 00000000 00000001 (原碼)
// -1 : 1 1111111 11111111 11111111 11111111 (補碼)

// -2 : 1 0000000 00000000 00000000 00000010 (原碼)
// -2 : 1 1111111 11111111 11111111 11111110 (補碼)

int num = -2;

int ret = num >> 1;

Console.WriteLine(ret);

// 在C#中對於移位操作,是對該數在電腦中的“二進位儲存形式的整體”來說的
//
// << (左移)就是:整體左移,在右邊空出來的位全部補零。
// >> (右移)就是:1.無符號數
//                  整體右移,左邊空出來的位全部補零。
//                2.有符號數
//                  整體右移,左邊空出來的位全部補該數的符號位。
//
// 得到的二進位形式的數即是結果。

================================================================================

JavaScript語言中得移位元運算:

<< (左移)   >> (右移):如果是無符號數,就無所謂了,按整體移。若是有符號數,符號位不動,不參與移位。

>>> (無符號數的右移):全部看作是無符號數,左邊空出來的位補0。(返回一個無符號類型的數)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.