🤖 核心的數據成員~變數(一)
變數的世界
在 C#世界中,基本上大家都希望有自己的歸屬感,所以他們都會被賦予一個的種族, 這也是所謂的強型別語言擁有的特性。 我們待會會跟各位介紹常見的種族,正是所謂的變數型別。
我們在這世界無論或大或小都會有一個棲身之處,也許是皇宮或者是天橋下,總有個地方讓我們睡覺, 變數也是一樣的,它們在電腦世界中無論如何最終會有一個記憶體內存供他們容身。
數字類型的變數
- 數字類型的變數是變數中人口最多的種族了,當然他們底下也細分成很多種族群
整數變數
- 整數這東西是人類在歷史上最早掌握的數字,我們來套用一個古人的名言:
“1”是數的第一原則,萬物之母,也是智慧;
“2”是對立和否定的原則,是意見;
“3”是萬物的形體和形式;
“4”是正義,是宇宙創造者的象徵;
“5”是奇數和偶數,雄性與雌性和結合,也是婚姻;
“6”是神的生命,是靈魂;
“7”是機會;
“8 ”是和諧,也是愛情和友誼;
“9”是理性和強大;
“10”包容了一切數目,是完滿和美好。
--畢達哥拉斯
- 沒錯這就是標榜"萬物皆數"的畢達哥拉斯,他讓我們了解到生活上處處都存在著整數的運算
- 接下來我們就心動不如馬上行動,來看看 C#世界中的整數吧!
- 首先我們剛剛有說過,當一個變數出生前,我們就得先給他們個種族(類型)
- 那麼整數的種族標誌就是 int
- 當一個變數被賦予 int 之後,他就擁有一個家族使命,並馬上獲得他的領土(內存中 4 個 Byte 的空間)
- 但因為剛剛才出生,所以什麼都不會,就如同一張白紙一樣(默認預設值 0)
- 明白整數的身世之謎後我們來他玩玩吧!
- 題目: 阿嬤到菜市場買菜,買了一根 50 元的蘿蔔跟 70 元的豬肉,請問阿嬤在未殺價的情況下給了攤主多少錢呢?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CsharpDemo
{
class Program
{
static void Main(string[] args)
{
//首先要來一個型態為整數的蘿蔔變數
int radish;
//再來個型態為整數的豬肉變數
int pork;
//此時阿嬤問攤主蘿蔔多少錢,攤主告訴阿嬤50元
//我們就可以讓蘿蔔變成50元
radish = 50;
//這時阿嬤又問攤主豬肉多少錢,攤主告訴阿嬤70元
//我們就可以就來讓豬肉變成70元
pork = 70;
//阿嬤為了計算方便就先把價錢寫下來了
Console.WriteLine("蘿蔔 " + radish + "元 ,豬肉 " + pork + "元");
//這時候店家拿出計算機按給阿嬤看
int computer = radish + pork;
//阿嬤看按計算機上面寫的價錢,就從錢包拿出錢給攤販開心回家了
Console.WriteLine("計算機畫面 => " + radish + " + " + pork + " = " + computer);
Console.ReadKey();
}
}
}
執行:我們可以按快捷鍵(Ctrl+F5)或是點選功能列的開始執行程式
蘿蔔 50 元 ,豬肉 70 元\ 計算機畫面 => 50 + 70 = 120
知識小學堂
- 這就是所謂的整數變數
- 這邊是整數的家,在內存中佔了 4Byte,也就是 32bit
其他整數類型
- short 型(短整數) : 這種類型只會分配到 2 個 byte,他值範圍為-32768~32768
- long 型(長整數) : 他擁有 8 個 byte,值的範圍則是-9223372036854775808~9223372036854775807
如果我們在short與long前面看到一個英文字母u,他則是無符號的型別ushort,ulong,他們這種族的世界中,是沒有負面情緒的,是個十分樂觀的種族,所以他們只有正數,沒有負數
現在我們來歸納一下整數類型吧
C#類型 | 值的範圍 | 中文名稱 |
---|---|---|
byte | 0 ~ 255 | 字節 |
short | -32768 ~ 32767 | 短整數 |
ushort | 0 ~ 65535 | 無號短整數 |
int | -2147483648 ~ 2147483647 | 整數 |
uint | 0 ~ 4294967295 | 無號整數 |
long | -9223372036854775808~9223372036854775807 | 長整數 |
ulong | 0 ~ 18446744073709551615 | 無號長整數 |
注意:如果使用超出這些範圍外,我們將它稱為溢位,程式會出錯,
所以我們使用前應該要先想好會用到多大的數值,別宣告太小導致溢位,
也別宣告太大而佔用內存空間
浮點數執行別變數
- 什麼是浮點數呢?浮點數就是所謂的小數
- 有時候整數的運算,已經無法滿足我們的需求,所以 C#中也有小數的運算
小數最常見有三種類型
C#類型 | 值的範圍 | 準確率 |
---|---|---|
float | ±1.5 x 10−45 ~ ±3.4 x 1038 | ~6-9 位數 |
double | ±5.0 × 10−324 ~ ±1.7 × 10308 | ~15-17 位數 |
decimal | ±1.0 x 10-28 ~ ±7.9228 x 1028 | 28-29 位數 |
我們馬上來練習看看吧
- 題目:請分別用 float 與 double 來印出?。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CsharpDemo
{
class Program
{
static void Main(string[] args)
{
//使用float型別來宣告變數
//記得數字最後要加上後置詞f
float pi_f = 3.1415926535879f;
//使用double來宣告變數
double pi_d = 3.1415926535879;
Console.WriteLine("pi_f = " + pi_f);
Console.WriteLine("pi_d = " + pi_d);
Console.ReadKey();
}
}
}
結果
pi_f = 3.141593\ pi_d = 3.1415926535879
- 由此我們就可以看得出,他們型別之間的差異,這樣在使用之前,我們可以優先考慮,應該要用哪個型別