ホームページ >バックエンド開発 >C++ >整数リテラルはいつ 64 ビットになりますか?

整数リテラルはいつ 64 ビットになりますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-09 05:55:10424ブラウズ

When Do Integer Literals Become 64-Bit?

デフォルトの Int コンテキストの 64 ビット整数リテラル

プログラミングでは、整数リテラルは整数を表します。通常、これらのリテラルは、通常 32 ビット幅のデフォルトの整数データ型に割り当てられます。ただし、特定の状況では、より大きな整数リテラルがデフォルトで作成されることがあります。

そのようなケースの 1 つは、整数リテラルがデフォルトの整数型の範囲を超える場合です。たとえば、 C および C では、「L」が付加されていないリテラルには、その値を表すことができる型があります。値が int 型に対して大きすぎる場合、long int または long long int 型に昇格されます。

この昇格により、リテラルが 32- としてキャストされた場合に発生するオーバーフローの問題が解決されます。ビット整数。 C 11 標準は、[lex.icon] ¶2 でこの動作を指定し、リテラルの型が値を表現できる指定されたリストの最初になると述べています:

int
long int
long long int

同様に、C99 はこれを定義しています。 §6.4.4.1 のプロモーションメカニズム。これにより、整数リテラルがデフォルトの整数範囲を超えた場合でも、暗黙的により大きな型に変換され、正しく表現できるようになります。

まれに、整数リテラルが依然として大きすぎる可能性があります。利用可能な整数型。その場合、C99 と C11 の両方で、リテラルがサポートされている型で表現できないことを示すコンパイル エラーが発生します。これにより、整数オーバーフローによる実行時の問題が防止されます。

以上が整数リテラルはいつ 64 ビットになりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。