整数リテラル

構文 [+|-][0x|0|0q|0b][0123456789ABCDEF]...[U|u|L|l]
123 10 進数の 123
-123 10 進数の -123
0x123 16 進数の 123 = 10 進数の 291
0123 8 進数の 123 = 10 進数の 83
0q123 4 進数の 123 = 10 進数の 27 [LC]
0b1001 2 進数の 1001 = 10 進数の 9 [LC]
-0xFF 16 進数の -FF = 10 進数の -255
123U unsigned 型の 123
123L long 型の 123
0x12ul unsigned long 型の 0x12

基数

先頭に 0x00q0b を付けると、それぞれ 16 進数、8 進数、4 進数、2 進数になります。4 進数と 2 進数は ISO/JIS/ANSI 規格外です。16 進数では、10 〜 15 の桁を 'A' 〜 'F' または 'a' 〜 'f' で表します。

末尾に u または U を付けると、unsigned (符号なし) 型になります。末尾に l または L を付けると、long 型になります。両方指定すると、unsigned long 型になります。いずれも指定しないと、int 型と見なされますが、int 型に入りきらない場合は、値に応じて unsigned、long、unsigned long 型と見なされます。→
short a = 1234; 有効
short b = 40000; 40000 は short に収まらないので警告される
short c = 123L; long を short に代入したので警告される
char d = 100; 100 は char に収まるので警告されない
char e = 300; 警告される

参照   リテラル