「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 32 ビットを使用しているにもかかわらず、C と Java の整数の範囲が異なるのはなぜですか?

32 ビットを使用しているにもかかわらず、C と Java の整数の範囲が異なるのはなぜですか?

2024 年 11 月 15 日に公開
ブラウズ:574

Why do C and Java's Integers Have Different Ranges Despite Using 32 Bits?

C と Java の整数範囲の違いについて

C と Java はどちらも整数データ型の 32 ビット表現を指定していますが、その違いは次のとおりです。

C のマシン依存の整数表現

C では、整数のサイズと範囲は、次によって明示的に定義されていません。言語に依存するため、マシンに依存するバリエーションが許容されます。従来、32 ビット マシンでは、整数は 32 ビットを占有し、その範囲は (-231) ~ (231-1) となり、-32,768 ~

Java の標準化された整数表現

対照的に、Java の Java 言語仕様では、その整数データ型が厳密に定義されています。 32 ビット整数 (Java では「long」と呼ばれる) は、一貫して (-231) から (231-1) の範囲にあり、C と同じ数値範囲をカバーします。 .

範囲の不一致の理由

C と Java の主な違いは、ビットの割り当て方法にあります。 C では、コンパイラと基礎となるハードウェアが整数表現を決定できるため、システムごとに異なるサイズと範囲が生成される可能性があります。一方、Java は、実行されるプラットフォームに関係なく標準化された 32 ビット サイズを強制し、一貫した整数の動作を保証します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3