整型與浮點型資料在計算機記憶體中的儲存

2021-08-04 14:50:23 字數 1492 閱讀 8088

1、型別的歸類

整型家族:char、unsigned char、signed char      //對於char來說,標準裡並不預設其為有符號還是無符號的,這個結果取決於編譯器

short ( signed short [int] )、unsigned short [int]

int ( signed int )、unsigned int

long ( signed long [int] )、unsigned long [int]

浮點數家族:float

double

構造型別:陣列型別

結構體型別 struct

列舉型別 enum

聯合型別 union

指標型別

空型別2、整型在記憶體中的儲存

1)整型在記憶體中以補碼的形式儲存。

原因有三:其一,使用補碼可以將符號位和數值域統一處理;其二,加法和減法可以統一處理(cpu只有加法器);其三,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬體電路。

2)資料儲存的大小端模式

存在不同位元組序儲存模式的原因:因為在計算機系統中是以位元組做單位的,每個位址單元對應乙個位元組,乙個位元組有8個位元位。不過在c語言中,除了具有乙個位元組(8b)的char型別外,還有2個位元組(16b)的short型、4個位元組(32b)的int型等,而且對於位數大於8的處理器,由於暫存器寬度大於乙個位元組,所以就必然存在如何安排多個位元組的問題。這就是小端儲存模式與大端儲存模式出現的原因。

例如對於乙個short型別的x資料,在記憶體中的位址為0x0010,其值為0x1122,那麼0x11是x的高位元組,0x22是x的低位元組。對於大端儲存模式,0x11放在低位址的0x0010中,0x22放在高位址的0x0011中。對於小端儲存模式則相反。

3、浮點數在記憶體中的儲存

1)根據國際標準ieee754,任意乙個二進位制浮點數v可以表示為下面的形式:

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

(-1)^s表示符號位,當s=0時,v為正數;當s=1時,v為負數

m表示有效數字,大於等於1,小於2

2^e表示指數字

2)對於32位的浮點數和64位浮點數的不同規定

對於32位的浮點數,最高1位是符號位s,接著是8位的指數e,剩下的23位是有效數字m。

對於64位的浮點數,最高1位是符號位s,接著的11位是指數e,剩下的52位是有效數字m。

3)幾點注意

第一,對於有效數字m,因為其值大於等於1而小於2,所以在計算機中,為了能夠利用23位(52位)表示更多的資料,ieee754規定儲存m時預設這個數的第一位為1,所以只儲存後面的部分(小數點後的位)。然後等到讀取此數的時候,再把第一位的1加上去。

第二,對於指數e,為了能夠表示負數的指數,ieee754規定,存入記憶體時e的真實值必須再加上乙個中間數,對於8位的e,這個中間數為127;對於11位的e,這個中間數是1023。

第三,當e全為0時,讀取該數字時有效數字m不再加上第一位的1,因為這是乙個無限接近與0的數字,表示正負0;當e全為1的時候,若m全為0,則表示乙個正負無窮大的數。

浮點型在計算機內的儲存方式

步驟1 整數轉二進位制 不停 2的做法,將每個餘數依次相加 步驟2 小數轉二進位制 不同 2 1 計0,1 計1,用 x 1 繼續往後做 2操作 步驟3 整數部分和小數部分二進位制粘合起來,注意小數點不要去除 步驟5 將2進製變成1.x 2 n 次方的形式,整數 小數一共24位,小數點不計位數,對應...

計算機內部浮點型資料的儲存

c c 浮點數在記憶體中的儲存方式 任何資料在記憶體中都是以二進位制的形式儲存的,例如乙個short型資料1156,其二進位制表示形式為00000100 10000100。則在intel cpu架構的系統中,存放方式為 10000100 低位址單元 00000100 高位址單元 因為intel cp...

資料在計算機記憶體中的儲存

要想學習程式設計,就必須了解二進位制,它是計算機處理資料的基礎。記憶體條是乙個非常精密的部件,包含了上億個電子元器件,它們很小,達到了奈米級別。這些元器件,實際上就是電路 電路的電壓會變化,要麼是 0v,要麼是 5v,只有這兩種電壓。5v 是通電,用1來表示,0v 是斷電,用0來表示。所以,乙個元器...