Python學習心得2020.9.15
二進制:
位:資料存盤最小單元,一位元組(byte)=8位(bit),
無符號數:沒有符號位,所有二進制均表示數值,
有符號數:最高位表示符號,0為正,1為負,
原碼、補碼和反碼(有符號數)
正數:原碼、反碼、補碼都一樣
負數:反碼–符號位不變,其余位取反;補碼–反碼+1
計算機運算的時候,都是以補碼的方式來運算的,因為二進制數在記憶體中是以補碼的形式存放的;
按位與 a&b 1&1->1
按位或 a|b 1|1/1|0/0|1 ->1
按位異或 a^b 10/01->1
按位取反 ~a 1=>0/0->1 正數的取反等于正數加1取負,例如11的取反等于-12;負數的取反等于負數加1取正,例如-12的取反等于11
左移 a<<b 二進制a最后加b個零,丟棄高位b位,結果值實際上是a2^b,因為在二進制數后添一個0就相當于該數2
帶符號右移 a>>b 舍棄二進制后面b位,正數高位補0,負數高位補1,結果值為a/2^b(取整)
無符號右移a>>>b 無論是正數還是負數,高位通通補0
關于位運算反碼補碼的總結:正的反碼和補碼都是原碼;負數的補碼是反碼加1,反碼是原碼符號位不變,其他位取反
為什么計算機存盤資料的時候存補碼?:因為計算機中只有加法器,只能進行加操作,存原碼對負數進行加操作的時候有問題
計算存數字存補碼,計算的時候也是補碼,最后結果看的時候看原碼
位運算子:&(按位與),|(按位或), ^(異或), ~(取反), >>(右移), <<(左移)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/56301.html
標籤:其他
上一篇:Cocos2d-x VS2015 lua 運行環境有問題
下一篇:計算機網路課后習題概略
