整数常量
整数常数是可以在草稿码中直接使用的数字,像是 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.