《深入理解計算機系統》 2 1資訊儲存

2021-09-02 01:25:21 字數 1189 閱讀 6196

前言:無符號編碼:基於傳統的二進位制編碼,表示不小於零的數;補碼編碼:有符號整數的最常見表達方式,可正可負;浮點數編碼:實數的科學記數法的以2為基數。其中整數編碼的表達是精確的,而浮點數編碼是近似的。

2.1資訊儲存

位元組:8個位組成的塊,是最小可定址的記憶體單元,大小單位。常用資料的大小如下圖所示

虛擬記憶體:機器級程式將記憶體視為乙個非常大的位元組陣列。記憶體的每個位元組有乙個唯一的數字標識,稱之為位址,所有可能的位址集合就被成為虛擬位址空間

2.1.2字資料大小

字長:每乙個計算機都有乙個字長,指明指標資料標稱的大小。故字長決定了虛擬空間的大小,如果一位字長為w位的機器而言,

2.1.3定址和位元組順序

小端法:最低有效位元組在最前面的方式;大端法:最高有效位元組在最前面的方式。不同的機器可能使用不同的方式,大多數intel相容機只使用小端法,android和ios都只使用小端法。

位元組順序帶來的問題:

a.不同機器間通過網路傳輸2進製資料時,傳送方和接收方使用方式不一致。解決方法:在網路應用程式的**編寫中建立關於位元組順序的規則,即傳送方將其轉換成網路標準,接收方將網路標準轉換為自身內部表示。

b.在檢查機器級程式時,閱讀表示整數資料的位元組序列時位元組順序很重要。

c.編寫規避正常的系統型別的程式時。

2.1.9c語言中的移位運算

對於右移運算來說,機器存在兩種右移運算:邏輯右移和算術右移。邏輯右移是在左端補k個0,算術右移是在左端補k個最高有效位的值。由於c語言中沒有明確規定哪一種是邏輯或算術右移,故存在可移植性問題,但是幾乎所有的機器都對有符號數使用算術右移。

深入理解計算機系統 計算機資訊儲存

計算機使用8位的塊 位元組 byte 來作為最小的可定址的儲存器單位,而不是訪問儲存器中每個單獨的位。機器級程式將儲存器視為乙個非常大的陣列,稱為虛擬儲存器 virtual memory 儲存器的每個位元組都由乙個唯一的數字來標識,稱為它的位址 address 所有可能位址的集合就稱為虛擬位址空間 ...

深入理解計算機系統 儲存結構

1 計算機的儲存結構是金字塔形的,一般來說cpu的週期時間 暫存器 高速sram 說明 ssd是一種基於快閃儲存器的儲存技術,乙個快閃儲存器由塊組成,每個塊又由頁組成,資料以頁為單位讀寫。ram 分為sram和dram,dram需要週期的進行重新整理,ram是易失性儲存器,一旦斷電全部消失。rom ...

深入理解計算機系統 陣列儲存

首先我們要知道,陣列的元素儲存的位址是連續的。一維陣列很好理解,接下來看看二維陣列的空間分布 對於上面這個例子,我們可以將a看成具有五個元素,且每個元素都是3個int長度的一維陣列儲存。分析例子 int main for i 0 i 5 i return sum 翻譯成彙編 main pushl e...