質問
たとえば、n=9
場合、異なる値が9バイナリ桁(ビット)で表現することができるどのように多くの?
私の考えは、私が1にそれらの9ビットのそれぞれを設定した場合、私はそれらの9つの数字が表現することができることの可能な最大数を作るということです。そのため、最高値は小数で1 1111 1111
に等しい511
です。私は、したがって、バイナリの9桁が511個の異なる値を表すことができる、と結論
私の思考プロセスは正しいですか?そうでない場合、誰かが親切に私が欠けているかを説明できますか?どのように私はn
ビットにそれを一般化することができますか?
解決
2 9 = 512個の値、それはあなたが持つことができますどのように多くの0と1の組み合わせだから。
<時間>これらの値は、使用しているシステムに依存しますが何を表しますか。それは符号なし整数だ場合、あなたが持っているでしょう。
000000000 = 0 (min)
000000001 = 1
...
111111110 = 510
111111111 = 511 (max)
で一般的にバイナリで整数を表すために使用される2の補数に、あなた」持っているでしょます:
000000000 = 0
000000001 = 1
...
011111110 = 254
011111111 = 255 (max)
100000000 = -256 (min) <- yay integer overflow
100000001 = -255
...
111111110 = -2
111111111 = -1
一般的に、 K を使用すると、2 K の値を表すことができるビット。
:彼らの範囲は、使用しているシステムに依存します符号なし2:0へ K -1
署名された:-2 K-1 2 K-1 -1
他のヒント
何が欠けている:ゼロ値です。
それを解決する良い方法は小さい始めることです。
1ビットとしましょうスタート。これはどちらか1
または0
ことができます。それは2つの値、またはバイナリで10
です。
00
だ01
、10
、11
又は100
ことができる次に、2ビット、
512
あるので(511が最大の一つであり、それは0〜511です、ない1〜511):。それはすでに「漏れた」ので、さて、
ところで、良いフォローアップエクササイズは、これを一般化するだろう
How many different values can be represented in n binary digits (bits)?
ロジックです。
あなたは各桁に2つの可能な値を持っています。あなたはそれらの9を持っています。
0〜99になり100の数字:あなたは数字で10の異なる値を持つベース10のようにあなたは(0から99になります)それらの2を持っていると言います。あなたがCalculが操作を行う場合は、指数関数を持っている。
base^numberOfDigits:
10^2 = 100 ;
2^9 = 512
この考えする簡単な方法があります。 1ビットで起動します。これは明らかに2つの値(0または1)を表すことができます。我々は少しを追加したときはどうなりますか?私たちは今、多くの値の倍表すことができます。私たちが追加さ0の前に表すことができた値と、我々は追加1で前に表すことが可能な値
だから、と表現できる値のnビットの数はわずか2 ^ N(2電源Nへ)である
あなたが不足しているものが使用されているエンコーディングスキームです。進数をエンコードするためのさまざまな方法があります。符号付数値表現に見えます。 9ビットについて、範囲及び表現できる数値の量は、使用されるシステムに応じて異なります。