2021年度「コンピュータ基礎1」第04回

第03回授業(オンライン形式)でくださった質問にお答えします.

Q. 第三回小テストの問3がよくわかりませんでした…
Q. 小テストの3問目と4問目がわかりません。3問目はやり方は合っていると思うのですが答えがあいません。
Q. 第2回講義の小テストの8進数37を16進数にするとどうなるかという問題が答えを見てもよくわかりませんでした、教えてください!!

A. 解説いたします.

問題文:“10進数の-107を2進数8桁の「2の補数」で表すとどうなるか?”
解説:
 方法は「10進数の107を2進数に変換し,それの2の補数を求める」というものです.
10進数の107を2進数に変換→「1101011」
ここまでは簡単にできると思います.ただし,これは正の数なので左端の「符号ビット」は0となります.(ここが勘所!)
ということは,左端に0を追加して8ビットのサイズにします.(これが最大の難関…)
ということは
「1101011」→「01101011」
となります.次に2の補数を求めるわけですが,方法は「全ビットを反転して1を足す」というものです.従いまして,
「10010101」
です.ちょっと難しい問題でしたね.

問題文:“8進数の37を16進数で表現したものは?”
解説:
 8進数の各桁は2進数にすると3ビット分になります.(ここが勘所!)
従いまして,
3→「011」
7→「111」
となり,結局「011111」です.これを16進数にするには「右から4ビットずつ」に区切って考えます.(これが最大の難関…)
つまり,
「00011111」
となり,4ビットずつに区切ると,
「0001」→1
「1111」→F
となりまして,結局「1F」が答えです.これも難しい問題でしたね.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)