- 締切済み
2に補数
10進数から2進数を2の補数にする時はビット反転して1を足すとできますが、2進数から10進数を2の補数にするときも同じくビット反転して1を足すと正解の答えが出るのですが、そのやり方でいいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- pyonmae
- ベストアンサー率64% (40/62)
回答No.3
基数変換やら補数やら一気に習って、ごちゃごちゃになっているご様子ですね。 まず、「基数変換」と言っても、数が変わるわけではありません。 10進数で4 2進数で0000 0100 これらは、表し方が違うだけで、同じ数です。 日本語で「りんご」 英語で「apple」 みたいなもんでしょうか。 そして、こういった基数の取り扱いと、符号の取り扱いは別物です。 11111100 → 4 と一気に考えるから混乱するのであって、落ちついて順を追って考えてみてはどうでしょうか。
- notnot
- ベストアンサー率47% (4900/10361)
回答No.2
10進数、2進数の意味がおかしいようですよ。 >10進数から2進数を2の補数にする時はビット反転して1を足すとできますが、 この表現は誤り。正しくは、 「負の10進数を、"2の補数表現の2進数"にするときは、絶対値を2進数表現してビット反転して1を足します」 >2進数から10進数を2の補数にするときも 日本語として意味をなさない文です。 「"2の補数表現の負の2進数"を(負の)10進数に変換する」と言う意味ですか? そうであれば、ビット反転して1を足せば"元の数の絶対値"(当然正の整数)になるので、それを10進数に直して、負号を付ければいいです。
- ymmasayan
- ベストアンサー率30% (2593/8599)
回答No.1
えっ、10進数に2の補数があるのは初めて知りました。 9の補数か10の補数しかないはずなのですが。 できたら例を挙げてみてください。
お礼
すいません。間違えました。2の補数表現。 私の問題8ビットで出題されているので8ビットとして書きます。 10進数の-1を2進数にすると1111 1111 2進数の1111 1100 を10進数にすると-4 同じくビット反転して1を足すと正解の答えが出るのですが、2進から10進数にする場合も同じくビット反転して1を足すやり方でいいのでしょうか?