golang 位元運算

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

http://blog.opskumu.com/golang-bitwise.html


位操作是程式設計中對位元模式按位或位元的一元和二元操作. 在許多古老的微處理器上, 位元運算比加減運算略快, 通常位元運算比乘除法運算要快很多. 在現代架構中, 情況並非如此:位元運算的運算速度通常與加法運算相同(仍然快於乘法運算). 位操作符

一、簡介

關於位元運算的操作,維基百科關於 位操作符 的理論介紹已經非常清楚了。關於 Golang 的位元運算其實和 C 語言比較類似,除了取反的操作和 C 語言有點區別,Golang 使用的是^x,而 C 使用的則是 ~x取反。

二、概念

  • << [ 左移 ]
    • 1 << 2 == 4
    • 輸出 0100 ,相比右移更常見,移位後空缺的部分全部填0
  • >> [ 右移 ]
    • 10 >> 2 == 2
    • 輸出 0010
  • x ^ y [ 異或 ]
    • 10 ^ 2 == 8
    • 操作的結果是如果某位不同則該位為1, 否則該位為0
  • x | y [ 或 ]
    • 10 | 2 == 10
    • 兩個相應的二進位中只要有一個為1, 該位的結果值為1
  • x & y [ 與 ]
    • 10 & 2 == 2
    • 兩個相應的二進位都為1, 該位的結果值才為1,否則為0
  • ^x [ 取反 ]
    • ^2 == -3
    • 減1取反 補碼

三、參考

  • 位操作符
  • golang 位元運算詳解
  • Tags: 
  • Go 1

聯繫我們

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