C# 變量 1.簡(jiǎn)單類型
簡(jiǎn)單類型就是組成應(yīng)用程序中基本構(gòu)件的類型,例如,數(shù)值和布爾值(true或false)。與復(fù)雜類型不同,簡(jiǎn)單類型沒有子類型或特性。
有很多數(shù)值類型是因?yàn)樵谟?jì)算機(jī)內(nèi)存中,把數(shù)字作為一系列的0和1來存儲(chǔ)。對(duì)于整數(shù)值,用一定的位(單 個(gè)數(shù)字,可以是0或1)來存儲(chǔ),用二進(jìn)制格式來表示。以N位來存儲(chǔ)的變量可以表示任何介于0到(2N_1)之間 的數(shù)。大于這個(gè)值的數(shù)因?yàn)樘?,所以無法存儲(chǔ)在這個(gè)變量中。
例如,有一個(gè)變量存儲(chǔ)了兩位,在整數(shù)和表示該整數(shù)的位之間的映射應(yīng)如下所示:
如果要存儲(chǔ)更多數(shù)字,就需要更多的位(例如,3位可以存儲(chǔ)0到7的數(shù))。
這樣得到的結(jié)論是要存儲(chǔ)每個(gè)可以想象得到的數(shù),就需要非常多的位,這并不適合PC。即使可以用足夠多 的位來表示每一個(gè)數(shù),用這么多的位存儲(chǔ)一個(gè)表示范圍很小的變量(例如0到10)的效率非常低下,因?yàn)榇鎯?chǔ)器 被浪費(fèi)了。其實(shí)表示0到10之間的數(shù),4位就足夠了,這樣就可以用相同的內(nèi)存空間存儲(chǔ)這個(gè)范圍內(nèi)的更多 數(shù)值。
相反,許多不同的整數(shù)類型可用于存儲(chǔ)不同范圍的數(shù)值,占用不同的內(nèi)存空間(至多64位),這些類型如表 3-1所示。
類 型 | 別 名 | 允許的值 |
sbyte | System.SByte | 介于-128和127之間的整數(shù) |
byte | System. Byte | 介于0和255之間的整數(shù) |
short | System. Int 16 | 介于- 32 768和32 767之間的整數(shù) |
ushort | System.Ulntl6 | 介于0和65 535之間的整數(shù) |
int | System.Int32 | 介于- 2 147 483 648和2 147 483 647之間的整數(shù) |
uint | System.UInt32 | 介于0和4 294 967 295之間的整數(shù) |
long | System.Int64 | 介于- 9 223 372 036 854 775 808和9 223 372 036 854 775 807之間的整數(shù) |
ulong | System.UInt64 | 介于0和18 446 744 073 709 551 615之間的整數(shù) |
注意:
這些類型中的每一種都利用了.NETFraraeworic中定r義的標(biāo)準(zhǔn)類塑?如第1章所述使用標(biāo)準(zhǔn)類型可以在語當(dāng) 之間交互操作。在C#中這些類型的名稱是Framework中定義的類型的別名,表3-1列出了這些類型在.NET Framework庫(kù)中的名稱。_
—些變量名稱前面的“u”是unsigned的縮寫,表示不能在這些類型的變量中存儲(chǔ)負(fù)數(shù),參見表3-1中的“允 許的值” 一列。
當(dāng)然,還需要存儲(chǔ)浮點(diǎn)數(shù),它們不是整數(shù)??梢允褂玫母↑c(diǎn)數(shù)變量類型有3種:float、double和decimal。 前兩種可以用±m(xù)x2e的形式存儲(chǔ)浮點(diǎn)數(shù),其中m和e的值因類型而異。decimal使用另一種形式:土m><10% 這3種類型、它們所允許的m和e的值,以及它們?cè)趯?shí)數(shù)中的上下限如表3-2所示。
類 型 | 別 名 | m的 最小值 | m的 最大值 | e的 最小值 | e的 最大值 | 近似的 最小值 | 近似的 最大值 |
float | System.Single | 0 | 224 | -149 | 104 | 1.5 X 10*45 | 3.4 X 1038 |
double | System-Double | 0 | 253 | -1075 | 970 | 5.0 X 10'324 | 1.7 X 10308 |
decimal | Systcm-Decimal | 0 | 296 | -28 | 0 | 1.0 X 10'28 | 7.9 X 1028 |
除數(shù)值類型外,另外還有3種簡(jiǎn)單類型,如表3-3所示。
類 型 | 另IJ 名 | 允許的值 |
char | System.Char | 一個(gè)Unicode字符,存儲(chǔ)0和65 535之間的整數(shù) |
bool | System. Boolean | 布爾值:true或false |
string | Systcm.String | 一個(gè)字符序列 |
注意組成string的字符數(shù)量沒有上限,因?yàn)樗梢允褂每勺兇笮〉膬?nèi)存?
布爾類型bod是C#中最常用的一種變量類型,類似的類型在其他語言的代碼中非常豐富。當(dāng)編寫應(yīng)用程 序的邏輯流程時(shí),一個(gè)可以是trae或丨se的變量有非常重要的分支作用。例如,考慮一下有多少問題可以用true 或false(或yes和no)來回答。執(zhí)行變量值之間的比較或檢查輸入的有效性就是后面使用布爾變量的兩個(gè)編程 示例。
點(diǎn)擊加載更多評(píng)論>>