Integer constants(整型常量)
從 YFRobotwiki
整數常量是直接在程序中使用的數字,如123。默認情況下,這些數字被視為int,但你可以通過U和L修飾符進行更多的限制(見下文)。
通常情況下,整數常量默認為十進制,但可以加上特殊前綴表示為其他進制。
进制 例子 格式 备注 10(十进制) 123 无 2(二进制) B1111011 前缀'B' 只适用于8位的值(0到255)字符0-1有效 8(八进制) 0173 前缀”0” 字符0-7有效 16(十六进制) 0x7B 前缀”0x” 字符0-9,A-F,A-F有效
小數是十進制數。這是數學常識。如果一個數沒有特定的前綴,則默認為十進制。
二進制以2為基底,只有數字0和1是有效的。
示例:
101 //和十进制5等价 (1*2^2 + 0*2^1 + 1*2^0)
二進制格式只能是8位的,即只能表示0-255之間的數。如果輸入二進制數更方便的話,你可以用以下的方式:
myInt = (B11001100 * 256) + B10101010; // B11001100 作为高位。
八進制是以8為基底,只有0-7是有效的字符。前綴「0」(數字0)表示該值為八進制。
0101 // 等同于十进制数65 ((1 * 8^2) + (0 * 8^1) + 1)
警告:八進制數0前綴很可能無意產生很難發現的錯誤,因為你可能不小心在常量前加了個「0」,結果就悲劇了。
十六進制以16為基底,有效的字符為0-9和A-F。十六進制數用前綴「0x」(數字0,字母愛克斯)表示。請注意,A-F不區分大小寫,就是說你也可以用a-f。
示例:
0x101 // 等同于十进制257 ((1 * 16^2) + (0 * 16^1) + 1)
U & L 格式
默認情況下,整型常量被視作int型。要將整型常量轉換為其他類型時,請遵循以下規則:
- 'u' or 'U' 指定一個常量為無符號型。(只能表示正數和0) 例如: 33u
- 'l' or 'L' 指定一個常量為長整型。(表示數的範圍更廣) 例如: 100000L
- 'ul' or 'UL' 這個你懂的,就是上面兩種類型,稱作無符號長整型。 例如:32767ul