0

ですから、これは私の教科書の質問の1つでした。まだそこに到達していませんが、これがどのように機能するかに興味があります。

ここでの最初のビットについては、1の補数についての私の理解は、1が存在する場合は、0を配置し、0は1を配置するように反転することです。これは8ビットである必要があるため、最初にバイナリにゼロを追加しました。Therefre01001001+73の次のバイナリ表現を書き留めます。

8-bit unsigned: 01001001
8-bit signed-magnitude: 01001001
8-bit one's complement: 10110110
8-bit two's complement: 10110111
8-bit excess-128: 10110111

これらは私が思いついた答えですが、私はそれらを間違ってやったとかなり確信しています。これについて何か説明はありますか?

第二に、私がネガティブでそれをどのように行うか-73、バイナリはちょうど-01001001なので、それは署名されていると思います、あなたは上記と同じテクニックをしますか(私がそれらを正しく持っていると仮定します)

8-bit signed-magnitude: -01001001
8-bit one's complement: 
8-bit two's complement: 
8-bit excess-128: 

助けてくれてありがとう

4

1 に答える 1

1

+73 は、excess-128を除く、名前を付けたすべての表現で 01001001 です。超過 128 では、その 11001001 (それに 128 を追加)。符号の大きさ、1 の補数、および 2 の補数は、正の数の場合はすべて同じで、負の数の場合のみ異なります。これらの表現での -73 の値は次のとおりです。

8-bit sign magnitude   11001001
8-bit one's complement 10110110
8-bit two's complement 10110111
8-bit excess-128       00110111

1 の補数「すべてのビットを反転」は、1 の補数表記で数値を否定する方法です。したがって、n がある場合、-n を取得するには、すべてのビットを反転します。

「すべてのビットを反転して 1 を加える」は、2 の補数で数値を否定する方法です。

1 の補数と 2 の補数の両方に 1 つの奇数値があります。1 の補数は -0 (すべてのビットが設定されている) で、実際には 0 と同じです -- または、0 を否定する無効な特別なケースとして扱うことができます。2 の補数の場合、-2^(n-1) です -- 8 ビットの場合は 128 -- これは、オーバーフローのためにそれ自体を否定する数値です。

于 2013-03-01T06:56:55.170 に答える