1. ホーム
  2. java

[解決済み] なぜJavaは符号なしintをサポートしないのですか?

2022-03-26 23:06:23

質問

なぜJavaは符号なし整数をサポートしないのですか?

予期せぬ大きな入力に対してオーバーフローを起こしにくいコードを書くことができることを考えると、これは奇妙な省略だと思います。

さらに、符号なし整数を使うことは、符号なし整数が保持することを意図した値が決して負であってはならないことを示すので、自己文書化の一形態となり得る。

最後に、割り算などの特定の演算では、符号なし整数の方が効率的な場合がある。

これらを含めると、どんなデメリットがあるのでしょうか?

どのように解決するのですか?

これは ゴスリングらへのインタビュー シンプルさについて。

ゴスロリです。言語設計者である私にとって、最近は自分でもそうとは思っていませんが、quot;simple"の本当の意味は、J. Random Developerが頭の中で仕様書を保持することを期待できるかどうかでした。この定義によると、たとえばJavaはそうではありませんし、実際、こうした言語の多くは、誰も本当に理解していないようなコーナーケースをたくさん抱えているのです。C言語の開発者に符号なしについて質問してみると、符号なしについて何が起こっているのか、符号なしの演算がどういうものかを実際に理解しているC言語の開発者はほとんどいないことがすぐにわかります。そういうことがCを複雑にしているのです。Javaは言語部分はとてもシンプルだと思います。ライブラリーは調べなければなりませんが。