22

だから私は数字を表現したい-12.5。したがって、12.5 は次のようになります。

001100.100

分数を計算しない場合、それは簡単-12です:

110100

しかし、-12.5 とは何ですか? ですか110100.100?この負の部分を計算するにはどうすればよいですか?

4

3 に答える 3

27

10 進数システムでは、各数値位置 (または列) は (右から左に数値を読み取る) を表します: 単位 (10^0)、10 (つまり 10^1)、100 (つまり 10^2) など。

符号なしの 2 進数では、基数は 2 であるため、各位置は次のようになります (ここでも右から左に読み取ります): 1 (つまり 2^0)、2 (つまり 2^1)、4 (つまり 2^2) など。

例えば

2^2 (4), 2^1 (2), 2^0 (1).

符号付き 2 の補数では、最上位ビット (MSB) が負になります。したがって、番号記号を表します。負の数は '1'、正の数は '0' です。

3 ビットの数値の場合、行は次の値を保持します。

-4, 2, 1
 0  0  1 => 1
 1  0  0 => -4
 1  0  1 => -4 + 1 = -3

固定小数点 (分数) システムによって保持されるビットの値は変更されません。列の値は前と同じパターンに従います。基数は (2) ですが、べき乗は負になります。

2^2 (4), 2^1 (2), 2^0 (1) . 2^-1 (0.5), 2^-2 (0.25), 2^-3 (0.125)

-1 は常に111.000
-0.5 になり、それに 0.5 を追加します。111.100

あなたの場合110100.10は -32+16+4+0.5 = -11.5 です。あなたがしたことは、-12 を作成し、0.5 を引くのではなく 0.5 を追加することでした。

実際に必要なのは -32+16+2+1+0.5 = -12.5 =110011.1

于 2013-03-20T16:11:12.593 に答える
5

負の整数になるか、定義された制限に達するまで、数値を何度も2倍にしてから、それに応じて小数点を設定できます。

-25 は 11100111 なので、-12.5 は 1110011.1 です。

于 2013-03-17T17:17:59.630 に答える
4

So;U は 2 の補数表現で -12.5 を表現したい

12.5:->> 01100.1

(01100.1) の 2 の補数:->>10011.1

2 の補数表現の加重コード プロパティをチェックして ans を検証します (MSB 加重は -ve)。-16+3+.5=-12.5 になります。

于 2016-09-12T09:13:06.437 に答える