0

FFAD(16進数)を10進値に変換してから、1と2の補数を実行しようとしています。FFADは16ビット整数として表されます。FFADを2進数に変換すると、1111111110101101になります。

私の問題は、それが負の数であるかどうかをどうやって知るかです。

私はバイナリを持っています。通常は1の補数を実行するために、最後のビットを0から1に変更してからすべてのビットを反転しますが、16ビット整数として使用可能なビットはありません。16番目のビットは1なので、それは負の数であることを意味しますか?それをどのように補完しますか?私はこの問題に混乱しているだけであり、どんなポインタでも大歓迎です。

4

1 に答える 1

3

それはもので埋められたままになっているので、そのネガティブ。ゼロの左パディングは正の数を示します。たとえば、3ビット数の10進値は次のとおりです。

  • 011 = 3
  • 010 = 2
  • 001 = 1
  • 000 = 0
  • 111 = -1
  • 110 = -2
  • 101 = -3
  • 100 = -4

1が左に埋め込まれている数値は負であり、0が左に埋め込まれている数値は正であることに注意してください。

2の褒め言葉の標準的な手順は、ビットを否定してから1を追加することです。

1111111110101101は0000000001010010になります。次に、1を加算して0000000001010011を取得します。

于 2011-10-04T21:46:30.560 に答える