0

https://electronics.stackexchange.com/questions/20537/how-to-identify-self-complementing-code

私はそれを正しく読みました、

しかし、その数を9から引く必要がありますか?

8421システムでは12=1100だからです

15〜12を引くと、答えは3、つまり0011になります。

だからそれはまた自己補完的です...

与えられた数をどの数から引く必要があるのか​​理解できませんが、その数は9である必要がありますか?

4

3 に答える 3

1

重みの合計が 9 の場合、自己補完です。たとえば、5211=(5+2+1+1)=9 または 2421=(2+4+2+1)=9 8421 は自己補完ではないため、8421! =9.

于 2016-01-29T15:21:58.887 に答える
0

明確にするためにいくつかの言い換え:IIRCは、目に見える数が9から差し引かれるとき、コーディングの「数」がビット反転される、つまり15から差し引かれることを意味します。

たとえば、0 = 0011、1 = 0100、2 = 0101、...、9 = 1100 (いわゆる過剰 3、詳細については modi の返信を参照してください。

于 2012-03-24T13:50:05.983 に答える
0

Base-10 の自己補完コードは、指定されたエンコードされた数字d [0-9] の補数が、9 の補数である9-dになるコードです。

Base-10 の数値をバイナリでエンコードするには、10 個の値 [0-9] を表現できる必要があります。つまり、3 ビットで 8 つの値を表現できるため、4 ビットが必要です。これでは十分ではありません。4 ビットで 16 個の値を表すことができますが、これは必要以上ですが、小数ビットがありません (または必要ありません)。

これらの 4 ビット内で可能なエンコード方式は数多くありますが、最も直感的なのは 8-4-2-1 方式、つまり 10 進数値のストレート バイナリ エンコードです。8-4-2-1 を使用して 12 をエンコードするには、[1] と [2] をそれぞれのバイナリ表現 [0001] と [0010] として別々にエンコードします。

9 の補数は、10 進数/Base-10 の数値をバイナリ エンコードする場合に関連します。9 は、Base-10 の数値をエンコードするときに必要な最大値だからです。

あなたの例は、9の補数ではなく15の補数を正しく生成している、10進数として表示されるBase-16を意味します。8-4-2-1 は直感的に Base-16 の自己補数コードです。4 桁の 2 進数の補数を取ることは、15 からそれを引くことと同じだからです。

同じ方法で表現された Base-10 数についても同じことは言えません。なぜなら、16 個のメンバー コード空間で 10 個の値しか表現していないためです。 4 桁の 2 進数の 10 進数。

ここの表 13.1: [ http://www.inf.fu-berlin.de/lehre/WS00/19504-V/Chapter1.pdf ] は、10 進数エンコードの 2 つの自己補完コード、つまり 8,4,-2, -1 およびexcess-3 エンコーディング スキーム、および後続のセクションでは、自己補完コードの背後にある目的と理論について説明します。

于 2012-03-24T09:11:30.827 に答える