1. 程式人生 > >讀書筆記-程式是如何跑起來的(第二章)

讀書筆記-程式是如何跑起來的(第二章)

1.由於cpu中的引腳只有兩種狀態,0v或者5v,所以就只有0或1兩種符號來表示計算機的狀態
2.一個位元組=8位二進位制數(位元組是資訊計量的基本單位,位是最小單位) 3.二進位制轉十進位制的換算:各個數位的數值乘以位權再相加
4.移位運算(計算機特有運算),通過對二進位制數值的各個數位進行左右移位 左移位:低位要補位. 右移位:低位被捨棄
5.移位運算是計算機內部速度最快的運算,通過位運算來達到乘除資料的效果 6.二進位制最高位一般為符號位,1表示負,0表示正 7,十進位制的1表示為00000001,-1表示為11111111,只是由補數獲得的結果,由於0和1以及位數的限制,導致二進位制數的表示有一定的限制.像byte,1個位元組,8位二進位制,十進位制範圍是-128到127,二進位制範圍則表示為11111111到01111111 8,補數(用正數來表示負數)的演算法.二進位制位取反再加1

9.正數與負數做運算,則是將正數的二進位制與負數的補數相加,而不是單純的兩個數的二進位制相加,那樣運算出來的結果是錯誤的 例如:1+(-1)
正確的計算是這樣的:

例如:3-5這個運算則是將3的二進位制00000011與(-5)的補數11111011相加 10.邏輯右位移(非數值二進位制):位數向右移,高位補0
11.算術右移位(數值二進位制):正數右移,高位補0,負數則是補數右移,高位補1 12.算術左移和邏輯左移都是低位補0(只有在右移時區分邏輯右移和算術右移)

13.符號擴充:8位擴充為16,32位等等,不管是正數或者負數,只要將符號位的數字進行高位擴充就行了
14.邏輯運算(二進位制)的一些圖例: