資料類型
维基百科,自由的百科全书
在程式設計的類型系統中,資料類型是用來約束資料的解釋。在程式語言中,常見的資料類型包括原始類型(如︰整數、浮點數或字元)、多元組、記錄單元、代數資料類型、抽象資料類型、參考類型、類別以及函式類型。資料類型描述了數值的表示法、解釋和結構,並以演算法操作,或是物件在記憶體中的儲存區,或者其它儲存裝置。
目录 |
[编辑] 機器中的資料類型
所有在電腦中,基於數位電子學的底層資料,都是以位元(0 或 1)表示。其中資料的最小的定址單位,稱為位元組(通常是八位元,以八個位元為一組)。機器碼指令處理的單位,稱作字長(至 2007 年止,一般為 32 或 64 位元)大部分對字長的指令解譯,主要以二進制為主,如一個 32 位元的字長,可以表示從 0 至 232 − 1 的無符號整數值,或者表示從 − 231 至 231 - 1 的有符號整數值。由於有了二的補數,機器語言和機器大多不需要區分無符號和有符號資料類型。存在著特殊的算術指令,對字長中的位元使用不同的解釋,以此作為浮點數。
[编辑] 原始資料類型
程式語言提供若干原始資料類型,以作為程式以及專用化複合類型的建立基礎。典型的原始資料類型包含各種整數、浮點數以及字串類型。儘管這些建立基礎︰陣列、記錄單元以及參考所聯繫的資料,可能未包括在原始類型,但仍可將其視為若干原始值的聚集。
[编辑] 複合類型
這部分可包括以下內容(最終仍取決於程式語言):
- RECORD
- 一組變數類型,例子:資料庫表格中的一行
- TABLE
- 資料庫中的索引欄位
- NESTED TABLE
- 任意的單一複合類型的一維陣列
- VARRAY
- 同一類型變數、且固定大小的收集處
[编辑] 數值範圍
每一個資料類型都有一個數值上的最大和最小值,稱作數值範圍。了解數值的範圍是很重要的,尤其是當使用較小的類型時,你就只能儲存範圍之內的數值。試圖儲存一個超出其範圍的數值,可能會導致編譯或執行錯誤,或者不正確的計算結果(因為被截斷)。
一個變數的範圍,是基於用以保存數值的位元組數目,而且整數資料類型通常[1]能夠儲存 2n 數值(此處的 n 是指位元)。對於其它的資料類型(例如,浮點數),其數值範圍更為複雜,且幾乎取決於所使用的儲存方法。還有一些不用完全部的位元,例如,布林只需一個位元,且表示一個二進制值(雖然在實踐中,通常會用完剩餘的 7 個位元)。某些程式語言[2]也允許反向決定,程式設計者定義解決問題所需的範圍和精度,然後由編譯器自動選擇合適的整數或浮點數。
下表列出常見的資料類型,及其數值範圍︰[3]
資料類型 | 大小 | 範圍 |
---|---|---|
整數類型 | ||
Boolean | 1 位元(雖然一般儲存為 1 位元組) | 0 至 1 |
Byte | 8 位元 | 0 至 255 |
Word | 2 位元組 | 0 至 65535 |
Double Word | 4 位元組 | 0 至 4,294,967,295 |
Integer | 4 位元組 | –2,147,483,648 至 2,147,483,647 |
Double Integer | 8 位元組 | –9,223,372,036,854,775,808 至 9,223,372,036,854,775,807 |
浮點數類型 | ||
Real | 4 位元組 | 1E-37 至 1E+37 (6 個小數位數) |
Double Float | 8 位元組 | 1E-307 至 1E+308 (15 個小數位數) |
[编辑] 資料結構
[编辑] 抽象類型
[编辑] 參閱
[编辑] 註釋
[编辑] 參考資料
- Luca Cardelli, Peter Wegner. On Understanding Types, Data Abstraction, and Polymorphism, [1] from Computing Surveys, (December, 1985)