1

数式で明示的に 0001 を使用せずに (電力 - 1111 - またはグラウンド - 0000 を使用して) 4 ビット数の 2 の補数を取得するにはどうすればよいでしょうか?

スプリッターを使用してみましたが、個別の 1 ビットの数値を 4 ビットの数値に再構築することはできませんでした。

4

2 に答える 2

1

ロジックで 2 の補数を計算するには、通常、一連の半加算器を使用します。

(sum,c_out) = HA(a,b) ==  
 c_out := a & b,
 sum := a ^ b;  

最初の HA は実際にはトートロジー (bit_0 == a_0、c_1 == 1) であり、必要に応じて最適化できます。また、最後の実行 c_4 は拒否されます。

(bit_0,c_1)   := HA(not a_0, c_0 = 1)
(bit_1,c_2)   := HA(not a_1, c_1)
(bit_2,c_3)   := HA(not a_2, c_2)
(bit_3,[c_4]) := HA(not a_3, c_3)

アセンブラでは、n ビット番号 == 2^n - i に対して twos_comp(i)、i!=0 に対してという事実を使用できます。

于 2013-01-28T06:31:55.810 に答える
1

4 ビットをバイトの上位 4 ビットに入れ、そのバイトを否定してから、上位 4 ビットを調べることができます。

于 2013-01-28T01:00:54.363 に答える