最近,準備學數學基礎,so我以爲了解一下二進制和位運算符是頗有用的。spa
二進制設計
先看看度娘怎麼說code
二進制是計算技術中普遍採用的一種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數爲2,進位規則是「逢二進一」,借位規則是「借一當二」,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。計算機中的二進制則是一個很是微小的開關,用「開」來表示1,「關」來表示0。orm
其實就是用「1」和「0」來表示數,二進制和十進制的轉換也是挺有用的,度娘講的就挺好。blog
位運算符get
OK,接下來看一看位運算符。數學
位操做是程序設計中對位模式按位或二進制數的一元和二元操做。 //來自度娘
it
定義什麼的都不重要,直接上操做form
按位與運算符"&"是雙目運算符。 其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均爲1時,結果位才爲1 ,不然爲0。參與運算的數以補碼方式出現。程序設計
1 9&5 2 00001001 //9的二進制補碼 3 & 00000101 //5的二進制補碼 4 = 00000001 //1的二進制補碼
1 9|5 2 00001001 //9的二進制補碼 3 | 00000101 //5的二進制補碼 4 = 00001101
1 9^5 2 00001001 3 ^ 00000101 4 = 00001100
1 ~(1001) 2 = 0110
1 x<<1 //至關於x*2 2 x>>1 //至關於x/2 3 x<<2 //至關於x*4 4 x>>2 //至關於x/4 5 //…… 6 //以此類推