C語言浮點型儲存到記憶體

2021-10-02 02:21:09 字數 2774 閱讀 9702

將乙個float型轉化為記憶體儲存格式的步驟為:

①.將這個實數的絕對值轉化為二進位制,轉化方法如下:例如11.25表示為二進位制數先將整數部分轉為二進位制

11/2=5   餘1

5/2=2 餘1

2/2=1 餘0

1/2 餘1

0結束 11的二進位制表示為(從下往上):1011

小數部分轉化為二進位制:用小數部分乘以2,乘到小數部分為0或者到精確位數為止.

0.25x2=0.5		  0

0.5x2=1 1

小數部分的二進位制表示為(從上往下):01

11.25的二進位制表示可表示為1011.01

②將這個二進位制格式實數的小數點左移或者右移n位,直到小數點移動到第乙個有效數字的右邊.向左移為+,向右移為-

1011.01移動到第乙個有效數字需要向左移3位,指數為+3,結果為1.01101
③從小數點右邊第一位開始數出二十三位數字放入第22到第0位,如果位數不夠右邊補零

1.01101->將小數字放入22-0位,從左到右,右邊位數不夠補零

④如果實數是正的,則在第31位放入0,否則放入1

⑤如果n是左移得到的,說明指數為正,第30位放入1.如果是右移得到的或 n=0,則第30為放入0;

⑥將n減去1後化為二進位制,並在左邊加補0補足七位,再放入第29到第23位

1011.01->1.01101為左移3為,指數為3,所以這裡是3-1=2,16進製為10,左邊補0

另外一種方法就是用127加上指數,得出的二進位制結果就是中間的8位

這裡指數為+3, 127+3=130 16進製為 0x82,二進位制表示為 1000 0010

如果指數為-3,127+(-3)=124 16進製為7c,二進位制表示為0111 1100

結果為  0100 0001 0011 0100 0000 0000 0000 0000

4 1 3 4 0 0 0 0

到此,float存入記憶體完成

8.4存入記憶體

整數部分8

8/2=4 0

4/2=2 0

2/2=1 0

1/2=0 1

二進位制為 1000

小數部分0.4,這裡為死迴圈,所以只計算到最大位數

0.4x2=0.8 0

0.8x2=1.6 1

0.6x2=1.2 1

0.2x2=0.4 0

0.4x2=0.8 0

0.8x2=1.6 1

0.6x2=1.2 1

0.2x2=0.4 0

0.4x2=0.8 0

0.8x2=1.6 1

0.6x2=1.2 1

0.2x2=0.4 0

0.4x2=0.8 0

0.8x2=1.6 1

0.6x2=1.2 1

0.2x2=0.4 0

0.4x2=0.8 0

0.8x2=1.6 1

0.6x2=1.2 1

0.2x2=0.4 0

0.4x2=0.8 0

0.8x2=1.6 1

0.6x2=1.2 1

0.01100110011001100110011

8.4的二進位制為:1000.01100110011001100110011

1000.01100110011001100110011左移3位:1.00001100110011001100110 23位

8.4為整數,指數為左移3位,結果如下:

0.25存入記憶體: 只有小數部分

0.25x2=0.5 0

0.5x2=1 1

0.25二進位制位:0.01

0.01->1.00 右移2位 所以指數為負數 -2-1=-3 十六進製制fd 二進位制 11111101

由於第30位是由( 左移為1 )或 (右移為0) 的來決定,所以只會取七位放入也就是 1111101,所以結果為:

指數為-2,127+(-2)=125 16進製為7d,二進位制表示為0111 1101

0011 1110 1000 0000 0000 0000 0000 0000

3 e 8 0 0 0 0 0

double型轉為二進位制如下

C語言資料儲存 浮點型

浮點數的儲存 ieee 745 乙個例項 關於e的一些注意點 1 float 3.4e 38 3.4e38 2 double 1.7e 308 1.7e308 3 long double 3.4e 4932 1.1e4932 我們以9.5為例,首先將乙個浮點型資料轉化為2進製形式,同時分為整數部分和...

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

1 整數在記憶體中的儲存 在計算機系統中,整數統一用補碼來表示和儲存。這裡普及一下 原碼 反碼 補碼 這三種表示方式均有符號位和數值為兩部分,符號位是首位用 0 表示 正數 用 1 表示 負數 原碼 直接將二進位制按照正負數的形式翻譯成二進位制就可以了。反碼 將原碼的符號位不變,其他位按位取反就可以...

浮點型在記憶體中的儲存

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