• ベストアンサー

二進数を負で表す

-256を2進数の9ビットで表すのに困っています まず256を2進数で表し、(100000000) それを反転させ1を足す (000000001 + 1) そうすると答えは000000010になります しかしこれは最上位のビットが0なので+の値になってしまいます どうすれば-256を9ビットで表せますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • unazukisan
  • ベストアンサー率20% (223/1066)
回答No.1

ビットを反転させるのが間違っています。 256 → 10000000 ビットを反転    ↓       011111111 それに1を足す。 ↓       10000000 となり、符号付きで考える場合、-256は「10000000」になります。

lockwell
質問者

お礼

あ、本当ですね。反転が間違ってますね^^ お二方、ご丁寧にありがとうございました! おかげさまで理解できました!

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

2's complement(2の補数)で表現できます。 下記を参照ください。 http://www.jtw.zaq.ne.jp/kayakaya/new/kihon/text/fusu.htm 9ビットだと、 +255 :011111111 ... 0 :000000000 -1 :111111111  ... -256 :100000000 となります。

すると、全ての回答が全文表示されます。

関連するQ&A