天天看點

C/C++資料類型

C/C++資料類型

C語言資料類型

基本類型

整數類型

浮點類型

構造類型

數組類型

結構體類型

共用體(聯合)類型

指針類型

空類型(void)

存儲資料的寬度

存儲資料的格式

作用範圍(作用域)

類型

寬度

位元組數

char

8bit

1位元組

short

16bit

2位元組

int

32bit

4位元組

long

資料類型在反彙編中的表示:

C/C++資料類型

整數類型分為有符号(signed)和無符号(unsigned)

float

double

64bit

8位元組

float類型存儲方式

C/C++資料類型
C/C++資料類型

double類型存儲方式

C/C++資料類型
C/C++資料類型

浮點類型轉化為記憶體存儲格式的方法:

先将這個實數的絕對值化為二進制格式

将這個二進制格式實數的小數點左移或右移n位,直到小數點移動到第一個有效數字的右邊

從小數點右邊第一位開始數出二十三位數字放入第<code>22</code>到第<code>0</code>位

如果實數是正的,則在第<code>31</code>位放入<code>0</code>,否則放入<code>1</code>

如果<code>n</code>是左移得到的,說明指數是正的,第<code>30</code>位放入<code>1</code>。如果<code>n</code>是右移得到的或<code>n=0</code>,則第<code>30</code>位放入<code>0</code>

如果<code>n</code>是左移得到的,則将<code>n</code>減去<code>1</code>後化為二進制,并在左邊加<code>0</code>補足七位,放入第<code>29</code>到第<code>23</code>位

如果n是右移得到的或<code>n=0</code>,則将<code>n</code>化為二進制後在左邊加<code>0</code>補足七位,再各位求反,再放入第<code>29</code>到第<code>23</code>位

1.25的轉換步驟:

二進制格式:<code>1.01</code>

移<code>0</code>位(<code>1.25=1.25*2^0</code>)

<code>1.25</code>=<code>0 0 1111111 01000000000000000000000</code>=<code>3FA00000</code>

PS:二進制表示小數并不是精确的,會出現無限循環的情況,隻得取前<code>n</code>位近似

英文與中文字元存儲略

繼續閱讀