深入理解計算機系統(讀書筆記)

第二章

信息的表示和處理

二進制

計算機的信息存儲和處理都是以二進制爲基礎的,通過一系列的0,1組合,我們能夠去表示有限的整數和實數。
首先了解三種重要的符號表示方法:

  1. 有符號表示:用於表示大於或等於0的整數
  2. 無符號表示:用於表示有正有負的整數
  3. 浮點數:以科學計數法爲基礎的二進制表示方法

信息存儲

在計算機內部數據是按照字進行存儲的,字有着統一的虛擬地址空間地址,計算機按照指定地址對數據進行讀取和寫入操作。
字通常爲8位,也就是說可以表示無符號的0x00-oxFF。而關於計算機能夠進行尋址的空間大小通常由“字長”表示,我們常說的32位系統,意思是指字長爲32位,也就是說其虛擬地址空間大小爲
2^32-1
另外值得注意的一點是不同機器間可能存在着信息存儲順序上的差別:這種差別被稱爲大端法和小端法。
大端法:一個數據如果超過一個字的表示範圍,由二個字以上表示時,則其字節存儲順序爲最高有效字節在前。
小端法:則是最低有效字節在前。
直觀的例子是:一個int型變量,其十六進值爲0x12345,地址範圍爲0x100-0x103。則其在大端法計算機和小端法計算機中的存儲順序爲:
這裏寫圖片描述
大小端得叫法來源於《格列佛遊記》裏面關於兩個派別關於吃雞蛋先打破那一端的爭論。
一般來說,程序員在編寫程序的時候,不必關心繫統式如何存儲數據的。但是有時候,大小端的問題會顯露出來,這時候就需要額外的注意,否則會帶來程序的錯誤。尤其是在網絡通信中,由於網絡中存在着各式各樣的機器,很有可能發生小端存儲的機器將數據發送給大端存儲的機器,或者反之,這時候就會產生錯誤,因此在網絡編程中,都需要首先將自身的信息按照網絡標準進行轉化,然後在進行發送。

發佈了18 篇原創文章 · 獲贊 73 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章