整型常量

來自ALSROBOT WiKi
2014年9月12日 (五) 13:38Admin討論 | 貢獻(xiàn)的版本

(差異) ←上一版本 | 最后版本 (差異) | 下一版本→ (差異)
跳轉(zhuǎn)至: 導(dǎo)航、 搜索

整數(shù)常量

整數(shù)常量是直接在程序中使用的數(shù)字,如123。默認(rèn)情況下,這些數(shù)字被視為int,但你可以通過U和L修飾符進(jìn)行更多的限制(見下文)。 通常情況下,整數(shù)常量默認(rèn)為十進(jìn)制,但可以加上特殊前綴表示為其他進(jìn)制。

進(jìn)制 			例子 		格式 		備注
10(十進(jìn)制) 	123 		無 	
2(二進(jìn)制) 	B1111011 	前綴'B' 	只適用于8位的值(0到255)字符0-1有效
8(八進(jìn)制) 	0173 		前綴”0” 	字符0-7有效
16(十六進(jìn)制)	0x7B 		前綴”0x” 	字符0-9,A-F,A-F有效

小數(shù)是十進(jìn)制數(shù)。這是數(shù)學(xué)常識。如果一個數(shù)沒有特定的前綴,則默認(rèn)為十進(jìn)制。

二進(jìn)制以2為基底,只有數(shù)字0和1是有效的。

示例:

101  //和十進(jìn)制5等價 (1*2^2 + 0*2^1 + 1*2^0)

二進(jìn)制格式只能是8位的,即只能表示0-255之間的數(shù)。如果輸入二進(jìn)制數(shù)更方便的話,你可以用以下的方式:

myInt = (B11001100 * 256) + B10101010;    // B11001100 作為高位。

八進(jìn)制是以8為基底,只有0-7是有效的字符。前綴“0”(數(shù)字0)表示該值為八進(jìn)制。

0101    // 等同于十進(jìn)制數(shù)65   ((1 * 8^2) + (0 * 8^1) + 1) 

警告:八進(jìn)制數(shù)0前綴很可能無意產(chǎn)生很難發(fā)現(xiàn)的錯誤,因為你可能不小心在常量前加了個“0”,結(jié)果就悲劇了。

十六進(jìn)制以16為基底,有效的字符為0-9和A-F。十六進(jìn)制數(shù)用前綴“0x”(數(shù)字0,字母愛克斯)表示。請注意,A-F不區(qū)分大小寫,就是說你也可以用a-f。

示例:

0x101   // 等同于十進(jìn)制257   ((1 * 16^2) + (0 * 16^1) + 1)

U & L 格式

默認(rèn)情況下,整型常量被視作int型。要將整型常量轉(zhuǎn)換為其他類型時,請遵循以下規(guī)則:

  • 'u' or 'U' 指定一個常量為無符號型。(只能表示正數(shù)和0) 例如: 33u
  • 'l' or 'L' 指定一個常量為長整型。(表示數(shù)的范圍更廣) 例如: 100000L
  • 'ul' or 'UL' 這個你懂的,就是上面兩種類型,稱作無符號長整型。 例如:32767ul