python邂逅——符號運算(一)

來源:互聯網
上載者:User

標籤:二進位   轉換   amp   相同   邏輯取反   補碼   進位   邏輯   不同   

1、布林運算子

  共三個

  not

  邏輯取反  eg:not 1  return false

  and

  優先返回假值的對象  eg:1 and 0  return 0  12 and 100  return 12  

  or

  優先返回真值對象  eg:1 or 2  return 1  0 or 20  return20

 

2、位元運算

  &  |  ^  <<  >>  ~

  &:位與運算

  輸入相同值則返回相同值,不同則返回0

  eg:7 & 7  return 7  8 & 9  return 0

  |:位或運算

  輸入有真值則返回真值,輸入兩個假值則返回0

  eg:2 | 3  return 2  0 | 0  return 0

  ^:位異或

  相同為0,不同為1

  eg:2 ^ 3  return 1  2 ^ 2  return 0

  <<:左移

  將數化為位元後向左移位,低位則補0

  x << y  即將x化為位元後向左移y位

  eg:2 << 3  return 16

  >>:右移

  將數化為位元後向右移位,低位則丟棄

  x >>y  即將x化為位元後向右移y位

  eg:2 >> 1  return 1

  ~:按位取反

  瞭解按位取反之前需要知道一下知識點

  (1)取反操作是在原碼上進行的!

  (2)在電腦裡面,數是以補碼儲存的,但是轉換成其他進位需原碼

  (3)原碼求補碼:取反,+1

  (4)補碼求原碼:取反,+1

  (5)正數的補碼即源碼,負數的補碼則為其對應正數二進位表示所有位取反(包括符號位,0變1,1變0)後加1

 

  當輸入為正數時,求其補碼(即其原碼),再取反,再求原碼,即可得到取反後的數(符號帶上)

  eg:~5

    5的補碼為0000 0101  取反得1111 1010,可見取反後數為一個負數(二進位最高位表示符號,1為負,0為正),然後求其原碼得0000 0110,再轉換成十進位得數為-6

  當輸入為負數時,求其補碼(即該數的正數取反後+1),再取反,再求源碼,即可得到取反後的數(符號帶上)

  eg:~-6

    -6的補碼為6的原碼取反後+1,6原碼為0000 0110,取反+1後得-6補碼為1111 1010,再取反得0000 0101,可見起取反後是一個正數,然後求其原碼得0000 0101,再轉換成十進位得數5

  

python邂逅——符號運算(一)

相關文章

聯繫我們

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