整數常數

整數常數是可以在草稿碼中直接使用的數字,像是 123;預設這些數字會被當做 int 資料型別,但是你可以將其更改為 U 和 L 型別 (在後面的說明中會提到)。

一般來說,整數常數前面若沒有標示特別的符號,將被視為十進制整數。

進制 範例 格式 備註
10 (decimal) 123
2 (binary) B1111011 開頭為 ‘B’ 只能使用8位元 (0 到 255)
有效字元只有 0 跟 1
8 (octal) 0173 開頭為 ‘0’ 有效字元只有 0 到 7
16 (hexadecimal) 0x7B 開頭為 “0x” 有效字元 0 到 9、A 到 F、a 到 f

 
Decimal 是十進制,整數常數沒有任何的前置符號。

例如:
101 // 相當於十進制 101 ((1 * 10^2) + (0 * 10^1) + 1)

 
Binary 是二進制,有效字元只有 0 與 1。

例如:
B101 // 相當於十進制的 5 ((1 * 2^2) + (0 * 2^1) + 1)

二進制格式只能在 8 位元上運作,介於十進制的 0 到 255 (B0~B11111111)之間,如果你想輸入 16 位元的話可以參照下面的處理方式:

myInt = (B11001100 * 256) + B10101010; // B11001100 是高位元

 
Octal 是八進制,有效字元有 0 到 7,它的前置符號是 ”0”。

例如:
0101 // 相當於十進制的 65 ((1 * 8^2) + (0 * 8^1) + 1)

警告:
它可能造成 debug 時很難被找到問題所在,因為它的前置符號是 0,會和數字串混在一起,編譯器會無意間的將你的常數當作八進制。

 

Hexadecimal (或 hex) 是十六進制,有效字元是 0 到 9、A 到 F,A 等於10,一直往上加,直到 F 等於 15,十六進制的前置符號是 ”0x”,而 A 到 F 的字元也可以輸入小寫。

例如:
0x101 // 相當於十進制的 257 ((1 * 16^2) + (0 * 16^1) + 1)

U & L 格式

預設上,一個整數常數被視為 int 型別,對程式開發者來說往往造成一些限制,為了讓整數常數可用不同型別來表示(例如:有符號、無符號、長整數等等),請看下面 U & L 的使用說明:

  • 'u' 或者 'U' 作為常數的附加符號時會被視為 unsigned 資料格式,例如:33u
  • 'l' 或者 'L' 作為常數的附加符號時會被視為長 (long) 資料格式,例如:100000L
  • 'ul' 或者 'UL' 作為常數的附加符號時會被視為 unsigned long 資料格式,例如:32767ul

See also

constants
#define
byte
int
unsigned int
long
unsigned long


語法參考主頁面

本頁由熱血青年 LBU 譯自英文版。

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.