整數 浮點型在記憶體中儲存

2021-08-04 19:59:26 字數 1166 閱讀 6941

(1)

整數在記憶體中的儲存

在計算機系統中,整數統一用補碼來表示和儲存。這裡普及一下「原碼、反碼、補碼」,這三種表示方式均有符號位和數值為兩部分,符號位是首位用「0」表示「正數」,用「1」表示「負數」。

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

反碼:將原碼的符號位不變,其他位按位取反就可以了。

補碼:反碼加1就得到補碼。

正數原碼、反碼、補碼都相同,負數有所差異。

對於整形來說:

資料存放在記憶體中的都是補碼。

因為補碼可以將符號位和數值域統一處理。cpu只有加法器,也可以用補碼將加法和減法統一處理。

然而在記憶體中儲存還牽扯大小端儲存:

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

小端儲存模式:

資料的低位儲存在記憶體的低位址中,而資料的高位儲存在記憶體的高位址中。

(2)浮點數在記憶體中的儲存

浮點數型別有:float、double、long double

舉例說明:

float型資料125.5轉換為標準浮點格式

125二進位制表示形式為1111101,小數部分表示為二進位制為1,則125.5二進位制表示為1111101.1,由於規定尾數的整數部分恒為1,則表示為1.1111011*2^6,階碼為6,加上127為133,則表示為10000101,而對於尾數將整數部分1去掉,為1111011,在其後面補0使其位數達到23位,則為11110110000000000000000 則其二進位制表示形式為

0 10000101 11110110000000000000000,則在記憶體中存放方式為:

00000000   低位址

00000000

00000000 

11111011 

01000010   高位址

而反過來若要根據二進位制形式求算浮點數如

0 10000101 

11110110000000000000000 

由於符號為為0,則為正數。階碼為133-127=6,尾數為11110110000000000000000,則其真實尾數為1.1111011。所以其大小為1.1111011*2^6,將小數點右移6位,得到1111101.1

,而1111101的十進位制為125,0.1的十進位制為1*2^(-1)=0.5,所以其大小為125.5。

浮點數在記憶體中儲存方式

浮點數在記憶體中的儲存方式為 符號位 指數 尾數 符號位 表示浮點數是正數還是負數。0表示正數,1表示負數 指數 指數部分。類似於科學技術法中的m 10 n中的n,只不過這裡是以2為底數而不是10。需要注意的是,這部分中是以2 7 1即127,也即01111111代表2 0,轉換時需要根據127作偏...

浮點型在記憶體中的儲存

以單精度型別變數為例 1.國際標準ieee 電氣和電子工程協會 754,任意乙個浮點數都可以表示為 1 s m 2 e,其中 1 s表示符號位,當資料為負時s 1,當資料為正時s 0 2 m表示有效數字位,它在記憶體中佔據23個位元位,它的取值範圍是大於等於1,小於2,而計算機對m進行存的時候只存小...

float在記憶體中儲存

浮點型變數在計算機記憶體中占用4位元組 byte 即32 bit。遵循ieee 754格式標準。乙個浮點數由2部分組成 底數m 和 指數e。mantissa 2exponent 注意,公式中的mantissa 和 exponent使用二進位制表示 底數部分 使用 進製數來表示此浮點數的實際值。指數部...