勉強の参考にさせて下さい
前回と同じようにもう一つ過去問を手に入れたのですが、同じく回答が手に入らず困っています。
大変お手数だとは思いますが、もうすぐ行われる期末テストの参考にしたいので、出来る範囲で構いませんのでもしどなたか解いて頂ければ大変うれしく思います。
どうかよろしくお願いいたします。
引き放し法除算において各ステップで次のような処理を行うことで,整数の除算を実行でき
る.但し,ri はi ステップ目の中間余り, qi は商のi ビット,D は除数である.
・中間余りを左シフトして2ri-1 を求める.
・if(2ri-1 * D >= 0) qi = 1; else qi = -1;
・ri = 2ri-1 - qi D
(1)
被除数(X):00100110 (38),除数(D):0110 (6)のときのこの方式による除算ステップを
示せ.
(2)
被除数(X):11011010 (-38),除数(D):1010(-6)のときのこの方式による除算ステップを
示せ.
[3]IEEE754 標準浮動小数点数に関して以下の問に答えよ.
(1)0xafbf0000 という表現のfloat 数の10 進の値(m X 2e の形式でよい)を求めよ.
(2)-938.8125 のfloat 表現(16 進数)を求めよ.
(3) int では表現できないが,float なら表現できる整数のうち,次の数を求めよ.
(a) 正で絶対値が最小(最も0 に近い)
(b) 負で絶対値が最小(最も0 に近い)
[4]キャスト操作やfloat/double データ型を使用せずに,入力された数のビットを処理して,
int/unsigned 数をIEEE754 表現のfloat にキャストする関数とそのドライバをC 又はC++
を用いて次のように書け.
(1)処理関数:次のいずれかを選択して書け.
(a) unsigned iToF(int):
int 数をfloat に変換し,unsigned 数として返す.ま
るめはIEEE default の“nearest, half way case to even”.
(b) unsigned uToF(unsigned):
unsigned 数をfloat に変換し,unsigned 数と
して返す.まるめは切り捨て.
(2)main 関数:
整数(無符号整数)を入力するとiToF(uToF)を用いて浮動小数点数
に変換してそのビットパターンを16 進で出力せよ.次に,そのfloat としての値を再度出
力し,入力した値と比較してみよ.それらは必ず一致するか.