【Arduino】資料型態與宣告變數

【Arduino】 資料型態與宣告變數(精選圖片)

資料最小單位

bit(位元)

電腦處理的最小單位,可表示為0、1兩種狀態。

透過這一堆0、1的組合,Arduino就可以計算出來我們要的數值。

byte(位元組)

第二小的單位,byte是由8個位元組合而成,也就是8個0、1的排列組合。

如下圖,想像成8個開關,因此會有2^8=256個組合。

這裡可以再延伸到二進位轉十進位,下列影片有蠻清楚的說明如何將二進位轉成十進位

我們將上圖的10110101練習看看,轉成十進位會是多少吧?

資料類型

大致了解資料基本的組成概念後,我們透過這個二進位方式就可以表現出更多種組合。

但是我們要告訴電腦說,我現在用了幾個bit來表現我要的數值,因此創造了下列幾種資料類型。

之後電腦看到一堆0,1的時候,就知道要如何換算成我們想要的數值了。

額外補充,8位元和32位元的微控制器在int及double上的記憶體容量不同,而Arduino uno 就是8位元的微控制器。

類型中文名稱占用記憶體大小數值範圍
boolean布林8 bittrue或false(1或0)
byte位元組8 bit0~255
char字元8 bit-128~127
int整數16 bit (8位元微控制器)
32 bit (32位元微控制器)
-32768~32767
-2147483648~2147483647
long長整數32 bit-2147483648~2147483647
float浮點數32 bit+/-3.4E+38
double雙倍精確度浮點數32 bit
64 bit (32位元微控制器)
+/-3.4E+38
+/-1.7E+308

補充說明,E是科學記號,+3.4E+38=3.4*10^38,

所以float的範圍就會是 -3.4*10^38 ~ +3.4*10^38,而其有效數字為7位數。

無正負號資料類型

如果不需要正負號的話,可以在資料類型名稱前面加上“unsigned”,就可以擴大數值範圍。

從下表可以看出來,就是把負數的範圍往正數推,

原本整數(int)範圍為-32768~32767,若加入unsigned,其範圍就是0到32767-(-32768)=65535

類型中文名稱數值範圍
unsigned int正整數0~65535

0~4294967295(32位元微控制器)
unsigned long正長整數0~4294967295

宣告變數

宣告變數語法

這裡的”等號”,我們把它稱作為賦值,其意思就是我們將變數賦予等號後面的數值。

與以往的”等於”意義有點不同,用賦予的概念會讓你更容易理解程式運作的方式。

變數命名規則

變數名稱只能包含字母數字底線(_)

第一個字不能是數字

變數名稱大小寫有別

對應有意義的名稱,讓程式碼更容易閱讀。

避免用“保留字”來命名,通常保留字就是那些有功能指令的字,像是print、digitalWrite…,官網有列出來可以參考https://www.arduino.cc/reference/en/

另外就是命名的小技巧,以led pin 命名時,

可以用led_pin,兩個字中間用底線,利用底線代替空白

也可以用ledPin,兩個字連接在一起,但第二個首字大寫,駝峰式命名法。

溢位錯誤

在選擇資料型態時,要注意該類型的變數儲存最大容量

若超過最大容量時,將會造成溢位錯誤。

像byte的數值範圍為0~255,如果放256進去(超過1),就會變成0; 若是放進去257(超過2),實際上則是1。

簡單來說超過範圍後,又會從0開始往後跑。

所以要挑選適合的資料型態來存放你的變數。

宣告常數

常數就是一個固定的變數,就是說我們無法再將這個變數賦予新的數值進去,只能是唯讀的狀態。

像是LED的腳位不會變動的話,那就可以使用const來宣告常數。

或是像是一些固定不變的參數(圓周率、換算匯率、等等等),就可以使用常數來宣告。

最後!! 你喜歡這篇文章,或是這篇文章對你有幫助的話,也歡迎分享出去給需要的人,訂閱免費電子報獲得最新資訊😄😄😄

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *