計算機中的儲存單元為什麼要分型別呢?
現實世界中的資料可以根據形態分類,如3、-5是整數,且乙個是正的,乙個是負的;2.3、1.23×10-5是小數;a、+是字元。計算機中沒有正負號,沒有小數點,沒有……,只有0和1。無論整數、小數或字元,所有資料在計算機中都將編碼成由0和1組成的二進位制串。假設計算機中乙個儲存單元的儲存狀態為01011010,那麼這個儲存單元的值(解碼後的值)在理論上可以是乙個整數,可以是乙個小數,也可以是乙個字元。不確定型別的儲存單元,沒有確定的值,是無法使用的。只有儲存單元的型別確定以後,它的值才能確定。因此,計算機中的儲存單元要分型別。
作為儲存單元的標識,c語言程式中的變數有明確的型別,因此,它們的實際值是確定的。在輸出乙個變數的值時,printf函式會根據不同的格式字元把它解碼成不同的值。輸出值的「多樣性」與變數實際值的「確定性」並不矛盾。
計算機中的編碼在形態上具有統一性(全部為0和1組成的二進位制串),因此,計算機中不同型別儲存單元之間的相互賦值在理論上就變得沒有任何障礙(可以直接拷貝)。這種特點體現在程式中,就表現為一些似乎矛盾的賦值,如某變數只能取非負值,但程式中卻依然用乙個負數給它賦值;明明是字元型變數,但程式中卻用整數給它賦值。
資料型別決定了計算機的計算能力。
當某種資料確定用什麼樣的儲存單元儲存後,計算機的計算能力實際上就已經確定了。如果計算機中用4個位元組儲存整數,則計算機中所有的整數無論大小都會是32位的二進位制數,同時,計算機的「整數計算能力」僅限於4個位元組所能編碼整數的範圍,計算機中不可能出現此範圍之外的整數。如果計算機中用8個位元組儲存小數,則計算機的「小數計算能力」只能精確到小數點後的某位(具體精度視編碼規則而定,通常為15至16位)。正如乙個算盤,完工後它的「計算能力」就確定了。並非它「不會」算更大的數,而是它的「硬體」制約了它的能力。
計算機的特點影響著與之溝通的c語言。其它程式語言也是如此。
學習c語言遇到問題時應養成「大膽猜測,小心求證」的好習慣,這也是通過學習知識培養自身能力所必須具備的好習慣。
章節導學...
35第2章 基本資料型別...
362.1 整型...
362.1.1 整型的分類...
362.1.2 整型字面量...
382.1.3 整型的輸入輸出...
402.2 浮點型...
522.2.1 浮點型的分類...
522.2.2 浮點型字面量和浮點型資料的輸入輸出...
532.3 字元型...
572.3.1 字元型資料...
582.3.2 字元型字面量...
592.3.3 字元型資料的輸入和輸出...
612.4 控制printf函式輸出資料的格式...
642.5 典型例題...
66練習2.
69研究...
73(一)輸入緩衝區...
73(二)printf函式的輸出...
79章節導學...
79
第3章 基本資料型別
0301.獲得使用者輸入的乙個整數,輸出該整數百位及以上的數字。0301 n input print n 2 0302.獲得使用者輸入的乙個字串,將字串按照空格分隔,然後逐行列印出來。0302 n input nlist n.split for n in nlist print n 0303.程式讀...
第 2 章 資料型別
2.1 識別符號與關鍵字 識別符號規則一 關於引導字元和後續字元,只要是unicode編碼的字元都可以作為引導字元包括ascii字元,下劃線 以及大多數非英文本元。後續字元是任意的引導字元,或者非空格,包括unicode中認為是數字的字元。識別符號大小寫敏感。規則二 識別符號不能與python的關鍵...
python基本資料型別(2)
字串 str 7 format 和format map 兩個都是格式化,講乙個字串中的佔位符替換為指定的值。format map 的書寫格式必須是字典型別。8 isalnum self,args,kwargs 判斷該字串是否包含數字和字母 可全部為數字,也可全部是字母 返回值是true和false。...