(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使用二進位制表示 底數部分 使用 進製數來表示此浮點數的實際值。指數部...