資料在記憶體中的儲存

2021-09-12 04:03:36 字數 1968 閱讀 1304

本文** 

首先認識一下計算機儲存結構:

快取記憶體區:記憶體與cpu之間的儲存器,容量比較小在mb級別,但是速度比記憶體高的多(比暫存器要慢一倍左右),接近於cpu的速度,它是加速讀取速度的乙個橋梁, cpu在記憶體中讀取資料時首先查詢快取區是否有對應的資料,如果有則直接讀取,沒有的話在村記憶體中讀取,在快取區中儲存的資料都是記憶體中儲存資料。

*系統會自動管理快取中的資料,如果某個資料訪問頻率降低到一定的值,那麼就從快取區中移除,從而將在記憶體中訪問頻率較高的資料放入快取區中。

記憶體:是計算機執行過程中的儲存主力,用於儲存指令(編譯好的**段),執行中的各個靜態,動態,臨時變數,外部檔案的指標等等。計算機中所有程式的執行都是在記憶體中進行的,因此記憶體的效能對計算機的影響非常大,用於暫時存放cpu中的運算資料,以及與硬碟等外部儲存器交換的資料,cpu會把需要運算的資料調到記憶體中進行運算,當運算完成後cpu再將結果傳送出來,記憶體的執行也決定了計算機的穩定執行。

*舉例:如果記憶體大小是4g,乙個程式裝入記憶體需要大於4g空間的話,該程式是無法執行的,當然實際是還要去掉作業系統占用的記憶體,因此連4g都無法滿足的。(當然現在有了虛擬記憶體,也就是將硬碟的一部分對映為記憶體空間,將不經常訪問的指令放到虛擬記憶體中,這樣其實是支援大於4g的程式的,這裡只是在假設沒有虛擬記憶體的情況下的舉例說明)。

硬碟:硬碟的空間大,一般用於儲存永久性的檔案。

整型在記憶體中儲存:

原碼:直接將二進位制按照正負數的形式翻譯成二進位制就可以。

反碼:符號位不變,其他位次按位取反。

補碼:反碼+1。

*正數的原碼、反碼、補碼都相同。

整型在記憶體中的存放的是補碼。

為什麼是補碼?

在計算機中,數值一律用補碼來表示和儲存,因為使用補碼可以將符號位和數值統一處理。同時,加法和減法也可以統一處理,補碼和原碼可以相互轉化,其運算過程是相同的,不需要額外的硬體電路。

大小端的儲存:

大端儲存:是指資料的低位儲存在記憶體的高位址中,而資料高位儲存在記憶體的低位址中。

小端儲存:是指資料的低位儲存在記憶體的低位址中,而資料的高位儲存在記憶體的高位址中。

計算機有大小端儲存的原因:

對於暫存器寬度大於乙個位元組,那麼必然存在著乙個如果將多個位元組安排的問題,因此就導致了大端、小端儲存模式。

浮點數在記憶體中儲存:

首先浮點數家族包括:float、 double、 long double。

根據國際標準ieee(電氣和電子工程協會)754,任意乙個二進位制浮點數v可以表示成下面形式:

(-1)^s*m*2^e

其中(-1)^s表示符號位,當s=0時,v為正數;當s=1時,v為負數。m表示有效數字,大於1小於2。2^e表示指數字。

舉個例子:對於5.0,寫成二進位制是101.0,相當於1.01*2^2。

對於-5.0,寫成二進位制是-101.0,相當於-1.01*2^2

ieee規定:

c/c++中記憶體分配

1.棧區:由編譯器自動釋放,存放執行函式而分配的區域性變數、函式引數、返回資料、返回的位址。

2.堆區:由程式設計師分配釋放,如果程式設計師不釋放,結束程式後時,可能由os**。分配方式類似鍊錶。

3.全域性區(靜態區):存放全域性變數、靜態資料、常量。程式結束後由系統自動釋放。

4.文字常量區:常量字串就存放在這裡,程式結束後由系統釋放。

5.程式**區:存放函式體(類成員函式和全域性函式)的二進位制**。

記憶體分配方式的三種:

1.從靜態儲存區分配

2.在棧上建立

3.從堆上分配

資料在記憶體中的儲存

身為乙個天天處理資料的人,不得不說資料在記憶體中的儲存是必須要知道的問題。首先,資料在記憶體中的儲存涉及到作用域,儲存位置等方面的問題。根據資料的作用域,可將資料劃分為區域性變數和全域性變數 區域性變數的作用域為從定義開始到函式執行結束 全域性變數的作用域從程式開始到程式結束。計算機的記憶體分配可以...

資料在記憶體中的儲存

大端,把乙個數字高位位元組序的內容儲存到低位址,低位位元組序內容儲存到高位址處 小端,把乙個數字高位位元組序的內容儲存到高位址,低位位元組序內容儲存到低位址處 判斷乙個機器是大端還是小端?指標判斷 int checksys 聯合體 共用體 union un int main 這裡首先需要知道的是,例...

資料在記憶體中的儲存

我們都知道在計算機中資料型別都有 char 1 short 2 int 4 long 4 8 float 4 double 8 等內建型別,以及他們所佔的空間大小。型別的意義 1.使用這個型別開闢記憶體空間的大小 大小決定使用範圍 2.如何看待記憶體空間的視角。型別歸類 整形家族 char unsi...