整型常量
來自ALSROBOT WiKi
整數(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