次のアプローチを使用して解決しようとしました: - 絶対値をバイナリに変換します。- 2 の補数を実行します。しかし、私が遭遇した問題は、 513 の絶対値を表すために何ビットを使用する必要があるかということです。ありがとう。
1 に答える
0
http://en.wikipedia.org/wiki/2%27s_complement
ウィキペディアによると、N ビットの 2 進数は −2^(N-1) から +2^(N − 1) − 1 の間で表すことができます。
2^X は X の 2 乗です。
513 を表すために必要なビット数を尋ねるのはあまり意味がありません。1 が 513 を表し、0 がそれ以外を表す 1 ビットで表すことができます。ある範囲の数値を表すには何ビットが必要かを尋ねる必要があります。
上で述べたように、2 の補数を使用すると、最大 (2^(N-1)-1) の正の数と 2^(N-1) の負の数を表すことができます。したがって、[-513..513] を表現したいと仮定すると、11 ビットが必要になります。
これは、2^(11-1) が 1024 に等しいためです。このようにして、-1024 から 1023 までの数値を 2 の補数で表すことができます。N = 10 を選択すると、-512 から 511 までの数値が得られますが、これでは十分ではありません。
これが役立つことを願っています。
于 2013-10-07T20:50:04.643 に答える