本課簡介
此課在解釋為何變數需要進行宣告
另外進一步地介紹之前提過的 int 型別
並另外介紹 float、double、bool 型別的變數
教學影片
注意:影片有高畫質 720P 的選項,可以看得更清楚喔!
重點提示
1. 宣告變數的意義在於,先告知電腦到底我們要給這個變數多少記憶體空間(從 type 判斷)以及它的名稱是甚麼
2. 在 C# 裡面,每個 int 的變數可以分配到 32 bits(4 bytes) 的記憶體空間。也就是說,對於每個 int 的變數,電腦會存放 32 個 0 或 1 在記憶體裡面
3. int 只能儲存有限大小的數字,而這個範圍是從 2^31 - 1 到 - 2^31,也就是 2,147,483,647 到 - 2,147,483,648 這之間的數字
4. 想要儲存小數可以使用 float 或 double,一般使用可以儲存數字範圍較大的 double
5. C# 會預先將所有數字當成 double 來處理
6. 有一種型別 bool 只能儲存「true」、「false」兩種資料,這種數值通常用來儲存判斷式的結果
補充
32 bits 的整數
本課提到 C# 裡面的 int 是使用 32 bits 的空間。但是在 C/C++ 裡面,int 變數使用的空間則跟 CPU 與 Compiler 有關。有時候會是 32-bit ,有時候是 64-bit。而 C# 並沒有這個問題。因為事實上,C# 內建了三種 int 型別,分別為 Int16、Int32、Int64,代表16、32、64 bits 的整數。當我們打 int 時,程式會自動解析為 Int32 來處理。因此固定都是 32-bit 的整數。
大數 Big Integer
int 能儲存的數字有限,因此當我們需要儲存更大的數字時,可能就不夠用了。從上一段文中可以知道,C# 還有內建的 Int64 這個型別可以使用。但是在密碼學中,進行 RSA 演算法時,因為內含大量的指數(exponential)與模數(mod)預算,使得 64-bit 的數字也不足以儲存計算結果。這個時候,大數(Big Integer)就登場了。
「大數」其實與一般的「整數」無異,不過它使用的記憶體空間會隨著儲存的數字做動態變化。基本上只要你的記憶體夠大,想要儲存多大的數字都不是問題。大數實作方式有很多種,而 Java 跟 C# 都有官方寫好的版本供大家使用。如何實作大數並加以使用也是程式競賽中時常出現的考題呢!
相關資訊連結
變數的內建型別列表
http://msdn.microsoft.com/zh-tw/library/cs7y5x0x%28v=vs.90%29.aspx
大數 Big Integer 相關資訊
http://msdn.microsoft.com/zh-tw/library/system.numerics.biginteger.aspx
大開眼界!!!!
回覆刪除這對不是資工的我非常有幫助!!!
這些教學真的做得很棒!!!!
謝謝支持 ^^
刪除非常喜歡您的教學,真的非常淺顯易懂 ! ! 感謝您花費的時間心血 受益匪淺 可以考慮開實況教學了
回覆刪除感謝你的支持~!!
刪除非常喜歡您的教學,真的非常淺顯易懂,但關於double有問題想詢問
回覆刪除以30 / 4為例
用以下程式碼僅會算到整數位,也就是7
double n = 30 / 4;
MessageBox.Show("" + n);
但如果用以下算法即可算出7.5
decimal n = 30m / 4;
MessageBox.Show("" + n);
請問兩者有差異嗎? 還是我double的用法有錯?
謝謝指教
以30 / 4為例
刪除用以下程式碼僅會算到整數位,也就是7
double n = 30 / 4;
MessageBox.Show("" + n);
為何? 謝謝