計算機程式設計/型別
外觀
< 計算機程式設計
計算機程式設計型別 確定了給定程式設計環境中值型別以及使用方式。在大多數情況下,程式語言定義了一組基本資料型別,例如用於數字、字元或字串。在高階語言中,通常可以從現有資料型別定義新的資料型別,例如表示郵政地址(由街道和城市字串以及郵政編碼整陣列成)。當在不同的程式和計算機系統之間通訊資料時,重要的是使用雙方都能識別的型別,或者有在它們之間轉換的方法。
資料型別的完整定義包括最多三件事
- 物理表示
- 資料是如何儲存的
- 操作
- 你可以用資料型別做什麼(含義);你不能做什麼,例如除以零或字串操作;以及如果你“溢位”緩衝區執行操作,導致結果“超出”分配的空間時會發生什麼
- 自動函式
- 哪些活動,在程式控制之外,可以改變資料(硬體、使用者、系統時鐘)
在一些程式語言中可以看到一些基本資料型別
- 整數
- 在某些語言中是無限的,在大多數語言中限制為 8 位、16 位、32 位、48 位、64 位大小 (C、C++、C#、w:DDS、Java、w:RPG)。在某些語言中 (Ada、w:FORTH、PL/I),大小可以自由定義。
- 比率
- 例如 2/3,只有少數語言有這些。
- 浮點數
- 浮點數,大多數語言提供單精度和雙精度 (C、C++、C#、DDS、Java、w:RPG)。在某些語言中 (Ada、PL/I),精度可以自由定義。
- 十進位制
- 十進位制(人類)定點數,通常用於貨幣值。只有少數語言 (Ada、PL/I、w:SQL、COBOL、w:RPG、DDS) 提供定點數。精度通常可以自由定義。
- 十六進位制
- 十六進位制,在 IBM 系統上可用。數字為零到 F。大多數現代語言不需要單獨的十六進位制型別,它們使用整數和專門的 I/O 例程。
- 壓縮十進位制
- 兩個數字可以容納在一個字元相同的空間內。檢視 w:ASCII、w:EBCDIC 或類似概念系統的字元集定義。請注意,字母和特殊字元由兩個十六進位制半位元組表示,因此使用壓縮資料,兩個數字可以容納在一個字母相同的空間內。通常,一個半位元組保留用於數字符號(加號或減號)。
- 複數
- 複數值通常由兩個浮點陣列成。只有少數語言 (C99、Fortran) 有這些。在面向物件的語言中,通常由庫實現 (C++、Ada)。
- 字元
- 一個字元,通常為 8、16 或 32 位大小。一些字元集,如 UTF-8,是用於可變長度。
- 記錄
- 各種基本型別的組合。
- 變體
- 型別在執行時確定。
- 物件
- 在面向物件的語言中。
- 陣列
- 參見文章 陣列。
- 字串
- 一系列字元。通常實現為字元陣列。
- 空值支援
- 除了資料空白或零之外,我們還可以有空值,這意味著我們還不知道那裡應該是什麼。
- DBCS 雙位元組字元集
- 一些國家和文化的“字母表”(如漢語、日語、韓語、俄語(西裡爾字母))可以使用稱為表意的圖形字元來執行類似於西方國家語言中 A 到 Z 字母在構建含義方面的作用,除了每個表意字比每個 A 到 Z 字母都包含更多含義。資料型別可用於儲存這些圖形字元集,這些字元集包含比傳統西方字元集中 256 種組合所能表示的更多符號,因此存在雙位元組字元集 (DBCS) 來解釋每種組合。
- 一些特殊字型使用類似的系統。
- 一些條形碼使用類似的概念。
- 日期時間和持續時間
- 這些是用於支援日期數學的特殊資料型別,例如計算兩個日期之間的天數。
- 標誌或指示器
- 它們包含真/假或是/否之類的值。它們通常用於識別鍵盤功能的使用(哪些特殊鍵被按下);印表機狀態(準備列印新頁面);檔案訪問(我們獲得了我們正在查詢的記錄,我們現在位於檔案結尾)。這些特殊條件意味著需要採取特殊行動。
- 可變長度
- 資料的寬度由內容控制。
- Ada 程式設計/型別系統
- C 程式設計/型別
- C++ 變數
- JavaScript/變數和型別
- Haskell/型別基礎 - Haskell 語言通常用作程式語言研究人員開發新的、高階型別系統的平臺。這本華夏公益教科書可以讓你洞悉未來普通程式設計師可能會看到的型別。(注意:另請參閱 Haskell 華夏公益教科書的高階部分)