在C語言中,整型常量有三種書寫形式:
(1) 十進制整數。十進制整數就是通常整數的寫法。例如:0、11、15、21等。
(2) 八進制整數。八進制整數的書寫形式是在通常八進制整數的前面加一個數字0。例如:00、0111、015、021等,它們分別表示十進制整數:0、73、13、17
(3) 十六進制整數。十六進制整數的書寫形式是在通常十六進制整數的前面加0x。例如:0x0、0x111、0x15、0x21等,它們分別表示十進制整數0、273、21、33。
注意,整型常量前面沒有+或者-,-10其實是一元-運算符和運算元10。
整型常量在一般微型機中占用2個位元組,不管是十進制、八進制或十六進制整數,它們的數值範圍都是十進制的 -32768 ~ +32767。
為擴大整型數據的數值範圍,C語言還提供了一種“長整型常量”。它們的數值範圍是十進制的 -2147483648 ~ +2147483647,在計算機中占用4個位元組。它的書寫方法也分為十進制、八進制和十六進制整數三種,唯一不同的是在整數的末尾要加上小寫字母“l”或者大寫字母“L”。例如:0L、0111L、0x15L都是長整型常量(分別使用十進制、八進制和十六進制表示)。
相對於“長整型常量”,我們把一般整型常量稱為“短整型常量”。
如果整型常量後面沒有字母“l"或”L“,而且超過短整型常量能夠表示的數值範圍,則自動認為該常量是長整型常量。例如-32769、32768、40000等均為長整型常量。
由於整型常量分為短整型和長整型兩種,又有十進制、八進制和十六進制的三種書寫形式,所以使用整型常量時,要注意區分。例如:10和10L是不同的整型常量,雖然它們有相同的數值,但它們在記憶體中占用不同數量的位元組;又如:10、010、0x10雖然都是短整型常量,但它們表示不同的整數值。