float型別在記憶體中的儲存

2021-07-15 06:28:29 字數 659 閱讀 2411

首先還是看一道題目:

#include "stdafx.h"

#include #include using namespace std;

int _tmain(int argc, _tchar* argv)

125.5在記憶體中的表示為:125.5轉化為二進位制:1111101.1,變為整數字為1,位1.1111011 * 2 ^6,階碼為6,偏移127等於133,二進位制表示為10000101。再計算尾數,將整數部分的1去掉得1111011,其餘的在後面補0,補足23位。因此二進位制表示為:0 10000101 11110110000000000000000。

在上面已經知道float型125.5在記憶體中存放方式為:

00000000   低位址

00000000

11111011

01000010   高位址

因此對於p和p+1指向的單元,其中儲存的二進位制數表示的十進位制整數為0;

而對於p+2指向的單元,由於為char型指標,為帶符號的資料型別,因此11111011,符號位為1,則為負數,由於在記憶體中二進位制是以補碼儲存的,所以其真值為-5.

對於p+3指向的單元,01000010,為正數,則其大小為66。上面程式輸出結果驗證了其正確性。

float在記憶體中的儲存

以下內容來自於 1.十進位制轉二進位制 1.1整數 11 2 5 餘 1 5 2 2 餘 1 2 2 1 餘 0 1 2 0 餘 1 0結束 11二進位制表示為 從下往上 1011 1.2小數 0.9 2 1.8 取整數部分 1 0.8 1.8的小數部分 2 1.6 取整數部分 1 0.6 2 1....

float型別資料在記憶體中如何儲存的?

float型別數字在計算機中用4個位元組儲存。遵循ieee 754格式標準 乙個浮點數有2部分組成 底數m和指數e 底數部分 使用二進位制數來表示此浮點數的實際值 指數部分 占用8bit的二進位制數,可表示數值範圍為0 255 但是指數可正可負,所以,ieee規定,此處算出的次方必須減去127才是真...

float資料在記憶體中的儲存

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