移位運算

移位運算位自己在寫遺傳算法的代碼的時候出現(xiàn)的,如下圖所示,當(dāng)j=0的時候,此時

zero_one = test_j * random.randint(0, 1)? ? ? ?#值為0

左移一位時候,變?yōu)閠est_j = 1了,開始沒有搞明白,后來想了一下因為0在存儲的時候不占位的原因,所以左移一位之后,test_j變?yōu)?

j = 0

gene_byte = (gene).bit_length() = 0 //二進(jìn)制位數(shù)位0


圖1 第二個for循環(huán)j=0時候值

zero_one的主要左右就是移位,在第二個for循環(huán)里邊,原本gene 占位為0個,經(jīng)過j=1循環(huán),二進(jìn)制占位為2,因為zero_one此時為10

zero_one = 10

gene = 0

#則或運算將gene的二進(jìn)制占位增加了2位,如圖二所示此時gene的占位數(shù)增加了

zero_one | gene = 10

gene_byte = 2


圖二?第二個for循環(huán)j=1時候值

因此在移位運算中我們可以得出一下結(jié)論:

如果一個值為0則此時該值不占位,左移或者右移一位之后,值將變?yōu)?

用個實例來說明吧:

?a = 001

b = 01

b = a | b? #也就是說先運算后賦值

b = 001

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 最近工作中被運算效率問題所困擾,比如大數(shù)據(jù)排序或者去重,因此現(xiàn)在需要補習(xí)一下位移運算。 首先講一下位移概念? 左位...
    等一夏_81f7閱讀 1,366評論 0 0
  • 1、左移運算符 左移運算符<<使指定值的所有位都左移規(guī)定的次數(shù)。 1)它的通用格式如下所示: value << n...
    dlihasa閱讀 1,841評論 0 2
  • 位運算符 位運算符主要針對兩個二進(jìn)制數(shù)的位進(jìn)行邏輯運算,它包括:與(&)、或(|)、非(~)、異或(^)**運算規(guī)...
    深情不及酒伴閱讀 1,144評論 0 1
  • 京東 當(dāng)當(dāng) 亞馬遜 北新網(wǎng) http://www.bxmedia.net/
    風(fēng)峰瘋封閱讀 152評論 0 0
  • 往事如煙,美好的事物如煙花般絢爛,也如煙花般短暫,剎那的芳華,轉(zhuǎn)瞬便逝!有時候幸福就像插上了翅膀,瞬間飛來,瞬間又...
    玉生煙閱讀 239評論 0 0

友情鏈接更多精彩內(nèi)容