python按位右移的作用_python入门之左移,右移,按位与,按位或,按位异或,按位取反...
1.<
將數(shù)字的位向左移動(dòng)指定的位數(shù)(二進(jìn)制表示);
例:2<<2輸出8
2的二進(jìn)制表示為10,向左移動(dòng)2位為1000,十進(jìn)制為8.
2.>>(右移)
將數(shù)字的位向右移動(dòng)指定的位數(shù)(二進(jìn)制表示);
例:11>>1輸出5
11的二進(jìn)制表示為1011,向右移動(dòng)1位為101,十進(jìn)制為5.
3.&(按位與)
將數(shù)字(二進(jìn)制)對(duì)應(yīng)位數(shù)比較,若對(duì)應(yīng)位都為1,則對(duì)應(yīng)位為1,否則為0;
例:5&3輸出1
5的二進(jìn)制為101,3的二進(jìn)制為011,按位與結(jié)果為001,十進(jìn)制為1.
4.|(按位或)
將數(shù)字(二進(jìn)制)對(duì)應(yīng)位數(shù)比較,若對(duì)應(yīng)位至少有一個(gè)為1,則對(duì)應(yīng)位為1,若對(duì)應(yīng)位都為0,則對(duì)應(yīng)位為0;
例:5|3輸出7
5的二進(jìn)制為101,3的二進(jìn)制為011,按位或結(jié)果為111,十進(jìn)制為7.
5.^(按位異或)
將數(shù)字(二進(jìn)制)對(duì)應(yīng)位數(shù)比較,若對(duì)應(yīng)位只有一個(gè)為1,則對(duì)應(yīng)位為1,否則對(duì)應(yīng)位為0;
例:5^3輸出6
5的二進(jìn)制為101,3的二進(jìn)制為011,按位或結(jié)果為110,十進(jìn)制為6.
6.~(按位取反)
計(jì)算機(jī)內(nèi)部在做數(shù)學(xué)運(yùn)算時(shí)(也就是計(jì)算機(jī)的0和1的運(yùn)算),都是以補(bǔ)碼為標(biāo)準(zhǔn)的,說白了計(jì)算機(jī)中就一種碼那就是補(bǔ)碼,而現(xiàn)實(shí)社會(huì)中的編碼規(guī)則,例如原碼、反碼都是我們自定義的,為了和計(jì)算機(jī)中的補(bǔ)碼形成轉(zhuǎn)換關(guān)系。所以說在我們手工計(jì)算這類由計(jì)算機(jī)計(jì)算的01運(yùn)算,要站在計(jì)算機(jī)的角度。因此首先就要將我們的原碼反碼全都先轉(zhuǎn)為補(bǔ)碼,再來計(jì)算.
正數(shù)的原、反、補(bǔ)碼都是它本身;負(fù)數(shù)的原碼最高位為1開頭,反碼是最高符號(hào)位不變,其余位在原碼的基礎(chǔ)上取反,補(bǔ)碼是在反碼的基礎(chǔ)上+1即可得到.
例:~5輸出6
5的補(bǔ)碼:00000101
00000101按位取反,取反結(jié)果為: 11111010
這里的結(jié)果是用補(bǔ)碼表示的,還是機(jī)器表示形式,轉(zhuǎn)化為自然語言的編碼,把結(jié)果轉(zhuǎn)化為原碼:
補(bǔ)碼-1轉(zhuǎn)為反碼: 11111010 - 1 = 11111001
反碼再取反轉(zhuǎn)為原碼:11111001 = 10000110
原碼轉(zhuǎn)為十進(jìn)制,答案就是-6.
x按位取反運(yùn)算公式為: -(x+1)
標(biāo)簽:右移,二進(jìn)制,補(bǔ)碼,取反,按位,對(duì)應(yīng),原碼,位為
總結(jié)
以上是生活随笔為你收集整理的python按位右移的作用_python入门之左移,右移,按位与,按位或,按位异或,按位取反...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu c++ 实现自动回车键功能
- 下一篇: python重命名异常_python异常