0

Javaでは、int型の変数は、内部的に32ビットの符号付き整数として表されます。1つのビットが符号を格納し、他の31ビットが基数2の数値の大きさを格納するとします。このスキームでは、タイプとして格納できる最大値はintどれですか。

答えは(2^31)-1です。目的は何-1ですか?なぜ1数の大きさから引く必要があるのですか?132番目のビットの目的であるため、記号とは何の関係もないと思います。

4

2 に答える 2

4

あなたはを忘れてい0ます。

10進法では、1桁の数字を使用して10値を格納でき、最大値は910^1 - 1)です。

これは同じ話です。iベースに数字を使用すると、値bを格納できb^i、最大のものはb^i-1(現在、符号ビットを無視しています)です。

補足として:Javaで数値によって使用される表現(他の多くの実装と同様)は、2の補数であり、0だけを格納するという特性があります(そうでない場合は、2の補数になります0-0そして+0最初のビットによると記号)。したがって、最大値が2^31-1、であっても、最小値はです-2^31

于 2013-03-08T02:23:43.593 に答える
0

2の補数表記について学ぶ必要があります。すべてのJava整数型は符号付きであり、すべてこれを使用して整数を表します。引く必要がないので、とてもいいです。

于 2013-03-08T02:37:41.190 に答える