1

符号付きと符号なしの解釈について何か知りたかっただけです。数値が符号なし整数の場合、その値は通常、2進数を10進数に変換して計算されますが、符号付き整数の場合は、最初に符号ビット(msb)が記録され、次に2進数が計算されます。 2の補数を使用します; 計算された値は、符号が記された実際の値です。

私は正しいですか、それとも何かが足りませんか?

4

2 に答える 2

1

はい、その通りです。2の補数形式で表される符号付き整数を10進数に変換する場合、これがその方法です。2の補数は、Intelプロセッサが符号付き整数を格納して計算する方法です。

注:しかし、この答えは、Intelマシンが符号付き整数をどのように表現するかについてではありません。一般的です。

10進数に変換するために使用する手法は、実際にはハードウェアで使用される表現によって異なります。

ハードウェア設計者は、署名された番号を次のように保存することを選択できます。

  1. 符号-大きさ(1ビットは符号を指定し、他のビットは大きさを指定し、補数なし)
  2. 1の補数(ここで、8ビットは、、およびを表し11111111ます)-000000000+0
  3. 2の補数(Intelなどの汎用ハードウェアで人気)
  4. ...(他の方法もあります。ウィキペディアの記事で詳細をご覧ください)

そして、私たち人間は、私たちが好む10進数形式でそれらを読み取るときに、対応する「変換」を使用する必要があります。

たとえば、主に乗算を行うハードウェアを設計している場合、符号付き整数を符号の大きさの形式で格納することには意味があります。符号と大きさを別々に乗算するだけです。一方、2の補数は、乗算するには少し扱いに​​くいですが、それほど多くはありません

もちろん、2の補数は、ほとんどのハードウェア(現在のほとんどすべての汎用CPU)が符号付き数値を格納する方法です。これにより、追加が簡単になります。

于 2012-06-27T10:28:30.260 に答える
0

あなたが説明したのは、符号付き2進整数を10進数の人間が読める形式の文字列に変換する最も一般的な方法です。

ただし、これが唯一の方法ではありません。2の補数の負の3ビット値111を最初に「7」に変換し、次に「8」を減算して「-1」に到達することができます。

于 2012-06-27T10:28:31.957 に答える