整数定数

提供: Appmethod Topics
移動先: 案内検索

定数の概要:インデックス への移動

整数定数は、10 進数(基数 10)、8 進数(基数 8)、16 進数(基数 16)のいずれかです。

10 進定数

0 から 4,294,967,295 までの 10 進定数が使用可能です。 この上限を超える定数は切り捨てられます。 10 進定数では、先頭にゼロを付けません。 ゼロで始まる整数定数は 8 進定数と解釈されます。 そのため、以下のようになります。

int i = 10;  /*decimal 10 */
int i = 010; /*decimal 8 */
int i = 0;   /*decimal 0 = octal 0 */

8 進定数

ゼロで始まる定数はすべて 8 進定数と解釈されます。 8 進定数に無効な数字 8 または 9 が含まれている場合は、エラーが報告されます。 また、037777777777 を超える 8 進定数は切り捨てられます。

16 進定数

0x(または 0X)で始まる定数はすべて 16 進定数と解釈されます。 0xFFFFFFFF を超える 16 進定数は切り捨てられます。

末尾に LU の付いた整数定数

整数定数の末尾に L(または l)を付けると、その定数は long 型として表されます。 同様に、U(または u)を末尾に付けると、定数は unsigned 型になります。 使用される基数に関係なく、数値そのものが 10 進の 65,535 を超える場合、その定数の型は unsigned long になります。

定数の末尾に U(または u)が付いている場合、その定数のデータ型は unsigned intunsigned long int のうち、その定数の値を格納できる最初の型になります。

定数の末尾に L(または l)が付いている場合、その定数のデータ型は long intunsigned long int のうち、その定数の値を格納できる最初のものになります。

同じ定数の末尾に、順序や大文字/小文字に関係なく、LU を両方とも付けることができます。たとえば、 ulluUL などです。 定数の末尾に LU の両方(ulluUllUuLLuULLU のいずれか)が付いている場合、その定数のデータ型は unsigned long int になります。

末尾に LU の付いていない整数定数

整数定数の末尾に UuLl のいずれも明示されていない場合、その定数のデータ型は、その値に基づいて決定されます。 そのデータ型は、以下の型のうち、整数定数値を格納できる最初のものになります。

[10 進数字]

int、long int、unsigned long int

8 進定数

int、unsigned int、long int、unsigned long int

16 進定数

int、unsigned int、long int、unsigned long int


整数定数値に従ってデータ型がどう決定されるかを以下の表に示します。

10 進定数 - 導出された型:

定数値

導出されたデータ型

0 ~ 32,767

INT

32,768 ~ 2,147,483,647

LONG

2,147,483,648 ~ 4,294,967,295

符号なし長整数。

> 4294967295

切り捨て


8 進定数 - 導出された型:

定数値

導出されたデータ型

00 ~ 077777

INT

010000 ~ 0177777

unsigned int

02000000 ~ 017777777777

LONG

020000000000 ~ 037777777777

符号なし長整数。

> 037777777777

切り捨て


16 進定数 - 導出された型:

定数値

導出されたデータ型

0x0000 ~ 0x7FFF

INT

0x8000 ~ 0xFFFF

unsigned int

0x10000 ~ 0x7FFFFFFF

LONG

0x80000000 ~ 0xFFFFFFFF

符号なし長整数。

> 0xFFFFFFFF

切り捨て

10 進定数と非 10 進定数ではルールが異なることに注意してください。


サイズ サフィックスの付いた整数定数

サイズ サフィックスを使用すれば、整数定数で占有されるメモリのバイト数(整数定数のサイズ)を指定できます。 使用できるサイズ サフィックスは、 i8I8i16I16i32I32i64I64 のいずれかです。

サイズ サフィックスの前に unsignedU または u)サフィックスを付けることができます。 たとえば、ui8Ui16UI32ui64 などです。

サイズ サフィックスは、整数定数の宣言済みの拡張整数型に、正確に一致しなければなりません。 たとえば、拡張整数型の以下のような整数定数を使用できます。

__int16 s = 32767i16;
unsigned __int16 us = 64532Ui16;
unsigned __int32 ui = 223456789uI32;

関連項目