この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語
Visual Studio 2017 を使用することをお勧めします

C++ 整数定数

整数定数は、小数部または指数部を持たない定数データ要素です。 常に数字で始まります。 整数定数の指定には、10 進、8 進、または 16 進形式を使用できます。 符号付きまたは符号なしの型と、long または short の型を指定できます。

integer-constant:

decimal-constant integer-suffix opt

octal-constant integer-suffix opt

hexadecimal-constant integer-suffix opt

' c-char-sequence '

decimal-constant:

nonzero-digit

decimal-constant digit

octal-constant:

0

octal-constant octal-digit

hexadecimal-constant:

0x hexadecimal-digit

0X hexadecimal-digit

hexadecimal-constant hexadecimal-digit

nonzero-digit: 次のいずれか

1 2 3 4 5 6 7 8 9

octal-digit: 次のいずれか

0 1 2 3 4 5 6 7

hexadecimal-digit: 次のいずれか

0 1 2 3 4 5 6 7 8 9

a b c d e f

A B C D E F

integer-suffix:

unsigned-suffix long-suffix opt

long-suffix unsigned-suffix opt

unsigned-suffix: 次のいずれか

u U

long-suffix: 次のいずれか

l L

64-bit integer-suffix:

i64 LL ll

8 または 16 進表記を使用して整数定数を指定するには、基数を示すプレフィックスを使用します。 特定の整数型の整数定数を指定するには、型を示すサフィックスを使用します。

10 進定数を指定するには、ゼロ以外の数字で指定を始めます。 次に例を示します。

int i = 157;   // Decimal constant
int j = 0198;  // Not a decimal number; erroneous octal constant
int k = 0365;  // Leading zero specifies octal constant, not decimal

8 進定数を指定するには、0 で指定を始め、0 ~ 7 の範囲の一連の桁を続けます。 数字の 8 と 9 は、8 進定数の指定ではエラーです。 次に例を示します。

int i = 0377;   // Octal constant
int j = 0397;   // Error: 9 is not an octal digit

16 進定数を指定するには、0x または 0X ("x" の大文字と小文字は区別されません) で指定を始め、09a (または A) ~ f (または F) の範囲の一連の桁を続けます。 16 進数の a (または A) ~ f (または F) は、10 ~ 15 の範囲の値を示します。 次に例を示します。

int i = 0x3fff;   // Hexadecimal constant
int j = 0X3FFF;   // Equal to i

符号なしの型を指定するには、サフィックスとして u または U を使用します。 long 型を指定するには、サフィックスとして l または L を使用します。 次に例を示します。

unsigned uVal = 328u;             // Unsigned value
long lVal = 0x7FFFFFL;            // Long value specified 
                                  //  as hex constant
unsigned long ulVal = 0776745ul;  // Unsigned long value

64 ビットの整数型を指定するには、サフィックスとして LL、ll、または i64 を使用します。 次に例を示します。

// 64bitsuffix.cpp
#include <stdio.h>
enum MyEnum {
   IntType,
   Int64Type
};

MyEnum f1(int) {
   printf("in f1(int)\n");
   return IntType;
}

MyEnum f1(__int64) {
   printf_s("in f1(__int64)\n");
   return Int64Type;
}

int main() {
   MyEnum t1 = f1(0x1234), t2 = f1(0x1234i64);
}

in f1(int)
in f1(__int64)
表示: