浮動小数点数の問題のときに-3乗を2の補数で1111101としていましたが、何で7ビットなのですか?
データ表現 No Comments »これは問題をよくみてください。浮動小数点数の指数が7ビットになっているので、7ビットと表現しているのです。もし、8ビットだったら8ビットで表記します。これは問題の条件が7ビットになっているからです。午前問題集のP15問13をもう一度みておきましょう。
これは問題をよくみてください。浮動小数点数の指数が7ビットになっているので、7ビットと表現しているのです。もし、8ビットだったら8ビットで表記します。これは問題の条件が7ビットになっているからです。午前問題集のP15問13をもう一度みておきましょう。
正の最小値ですので、一番小さい値を考えてください。0000.0001が一番小さい値になる(4桁目に小数点がつく)ので、これを10進数にすると0.0625になるのです。ちなみに一番大きい値は1111.1111です。0000.0000は0になります。
2以外の補数は1の補数でしょうか?
2の補数 → 反転して1足す
1の補数 → 反転するだけ
基数が2のときは2の補数と1の補数しかありません。
有効桁を考えるならば必要ありますね。1の後は0であるということが確定していますので。
通常の基数変換は小数点を基点にして、4桁ごとに区切っていきます。しかし、浮動小数点数は基数変換というよりは、2進数で表現すると長くなるので、16進数で表現して短くしようとしているだけです。2進数4桁が16進数で1桁になるので、その性質を利用してただ縮めただけなんですよ。
試験には無限小数に関する問題は出ますが、選択肢を選ばせる問題なので無限小数になることがわかれば大丈夫です。
問題ありません。それが楽ならそれでもいいでしょう。
今回は詳しく計算式を書きましたが、自分で速くやる方法をみつけるのもいいことですね。
(A4.E)16進数を8進数に変換するときは、16進数を一度2進数に変換してから8進数にすると簡単です。
(A4.E)16進数を2進数にすると (1010 0100 . 1110)2進数となりますので、これを小数点を区切りにして3桁ごとに区切りなおします。010 100 100 . 111 となります。これを8進数に変換すると(244.7)8進数となります。
もし (A4.E)16進数を8進数に直接変換したいときは、8で割り算をして余りを逆から並べなければなりません。これは大変なので2進数で変換するのが一番簡単だと思います。
浮動小数点の基数は2とは決まっていません。IEEEの形式では基数が2と決まっていますがIBMの方式では基数が16となっています。試験で計算するときも基数が決まっているわけではありません。問題に基数がいくつになるか書いてありますので、まずその基数に変換してから正規化を行いましょう。