1. 程式人生 > >《程序是怎樣跑起來的》第二章

《程序是怎樣跑起來的》第二章

左移 數位 位數 運算 的區別 轉換 過程 字節 出現

在第一章中,初步了解了程序的運行機制,這一章講了數據在計算機內部的表現形式是以二進制數值來表現。二進制數據是用0和1兩種數碼來表示。計算機中的數據用二進制數來處理,計算機處理信息最小單位是“位“,8位二進制數是一個字節。對於二進制的轉換,我會轉換但並不知道其背後的原理,書中講的很詳細,首先從位權說起,位權:數制中每一固定位置對應的單位值成為位權。例如一個兩位數,個位數位權是1,十位數位權是10,基數指某個進制的值R如二進制的基數是2,八進制的基數是8。

二進制的移位運算中運算符<<表示左移,二進制左移一位,十進制相當於原來的二倍。右移過程中會出現最高位空出來的問題,如何填充呢?這裏出現一個新名詞“補數”,補數就是用正數來表示負數。補數求解的變換方法是“取反+1”用書中的栗子:“1”的二進制:00000001 取反:11111110 補數:11111111。在右移中空出來的最高位填充0表示邏輯右移,1則是算術右移。再舉個栗子:-4二進制:11111100 >> 00111111,最高位填充為1其結果是:-1,只是算術右移。

通過學習第二章在鞏固以前學的知識的同時獲得了新的知識:補數、算術右移與邏輯右移的區別、移位和算數運算的關系等。

《程序是怎樣跑起來的》第二章