情報
大学生・専門学校生・社会人
解決済み

上の8桁の二進数が−16になるのかわかりません。

僕の考えでは最上位ビット1は符号ビットでそれ以下のビット列1110000が数値を表す。
(1110000)2=(2^6+2^5+2^4)10=(112)10
(上式のカッコの外の数値は進数を表すことにする)

結局、符号ビットも合わせると−16ではなく−112という計算になります。

よろしくお願いします。

回答

✨ ベストアンサー ✨

数の格納方法として、それはそれでアリかと思いますが、MSBが符号を表す場合、残りの実部はその2の補数を格納しておくことにより、マイナス値も加算と同じ手順(加算回路)同じロジックで計算出来るメリットがあるため、こういう独特の格納をしていると記憶しています。
前後の説明が載って無いので推測ですが、確かそんな感じだったと記憶しています。

Itsuki.S

納得いきました!
計算したらMSB以外のビットには16の補数が格納されていました!
スッキリしましたありがとうございます!

この回答にコメントする
疑問は解決しましたか?