2012-03-24 25 views
3

符号付き16ビット16進数で減算する必要があります。 C352-36AE。それは、彼らと数学をすることになると、署名と署名の違いは何ですか?唯一のソリューションは、バイナリに変換し、符号付き減算を実行してから、答えを16進数に変換し直しますか?ありがとう。符号付き16進数減算対符号なし

+0

2の補数符号付き数値の場合、特別な処理はありません。 –

+0

ああ、申し訳ありませんが、2の補数です。だから、2の補数を仮定すると、減算を署名として行うことは、無署名と同じ答えでしょうか? – rfmas3

+0

試しましたか? –

答えて

1

減算は符号付きと符号なしの両方で同じです。違うのは、結果がどのように解釈されるかです。符号なし数値は決して負ではありません。

0xffffは-1です。 0xffffは符号なし65,535です。

数字は同じです。

http://en.wikipedia.org/wiki/Two%27s_complement

1

16ビット符号付きまたは符号なしの減算の結果は常に16ビット(ビット単位の減算の結果である)に加えて、17ビットがオーバーフロービット(符号付き減算)のいずれかであると、17ビット以上でありますキャリービット(符号なし減算)。 16ビットの結果しか持たない場合は、符号付きまたは符号なしの16ビット減算ではなく、ビット単位の減算を行います。符号付き、符号なし、またはビット単位の減算を指定する代わりに、多くのシステムで3つの結果がすべて同時に生成されます。符号付き減算を使用する場合はオーバーフロービット、符号なし減算を使用する場合はキャリービット、ビット単位減算では使用しません。多くの人が17ビット目を見ないのは、入力の範囲から真の16ビット減算を必要としないことを知っているからです。たとえば、私が知っている数値を、0〜100の数値から、1000〜2000の数値に減算した場合、真の16ビットの減算は必要ないので、17番目のビットを見る必要はありません。注:オーバーフローとキャリーは異なるルールによって導き出され、同じではありませんが、2つの違いは既に他の場所で説明されていますので、ここでその回答を複製しません。

関連する問題