計算機內部CPU和內存都是IC的一種,它們都有多個引腳。IC的全部引腳,只有直流電壓0V或5V兩個狀態。也就是說,IC的一個引腳,只能表示兩個狀態。IC的這個特性,決定了計算機的信息數據只能用二進制數來處理。計算機處理信息的最小單位——位,就至關於二進制中的一位。圖片
對於用二進制數表示的信息,計算機不會區分它是數值,文字,仍是某種圖片的模式等,而是根據編寫程序的各位對計算機發出的指示來進行信息的處理。內存
移位運算指的是將二進制數值的各數位進行左右移位的運算。移位有左移和右移兩種。原理
移位操做使最高位或最低位溢出的數字直接丟棄就能夠了。二進制
4.1表示負數的方法:程序
計算機在作減法運算時,實際上內部是在作加法運算。用加法運算來實現減法運算。爲此,在表示負數時就使用「二進制的「補數」。補數就是用正數來表示負數。方法
爲了得到補數,咱們須要將二進制數的各數位的數值所有取反,而後再將結果加1。原理是:「將二進制數的值取反後加1的結果,和原來的值相加,結果爲0」數據
須要注意的一點:當運算結果爲負數時,計算結果的值也是以補數的形式表示的。例如3-5這個運算,用8位二進制數表示3時是00000011,而5=00000101的補數取反加1,也就是11111011。所以3-5其實就是00000011+11111011的運算,運算結果爲11111110,最高位變成了1。這就表示結果是一個負數。那麼經過求解補數的補數,就可知該值的絕對值。所以11111110的補數,取反加1後爲00000010。這個是2的十進制數。所以,11111110表示的就是-2。咱們就獲得了3-5的正確結果。計算機
算術右移:將二進制做爲帶符號的數值進行運算時,移位後要在最高位填充移位前符號位的值(0或1).這就是算術右移。數字
只有在右移時才必須區分邏輯位移和算術位移。左移時,不管時圖形模式(邏輯左移)仍是相乘運算(邏輯右移),都只須要在空出來的低位補0便可。位運算
下面順便介紹如下符號擴充。以8位二進制數爲例,符號擴充就是指在保持值不變的前提下將其轉換成16位和32位的二進制數。將01111111這個正的8位二進制數轉換成16位二進制數時,很容易就能得出0000000001111111這個正確結果,可是像11111111這樣用補數來表示的數值,該如何處理比較好呢?實際上將其表示成1111111111111111就能夠了。也就是說,無論時正數仍是用補數表示的負數,都只需用符號位的值(0或1)填充高位便可。這就是符號擴充方法。
邏輯運算是指對二進制數各數字位的0和1分別進行處理的運算,包括邏輯非(NOT運算),邏輯與(AND運算),邏輯或(OR運算)和邏輯異或(XOR運算)四種。
對於邏輯運算,咱們須要一個總體的把握:
邏輯非:是全部位的取反操做
邏輯與:是將一部分變爲0(復位到0)的操做
邏輯或:是將一部分變爲1(復位到1)的操做
邏輯異或:是將一部分進行取反(相同取0,不一樣取1)的操做