演習 1-1 (個人): テキストの手順に従って 10 進数の 53 を 2 進数に変換してみましょう。桁数は n = 8 とします。
A = 53 とする
1. 桁数を n = 8 ビットとする 2. A = 53 を 2 で割る。商は q0 = ?、余りは r0 = ? 3. q0 = ? を 2 で割る。商は q1 = ?、余りは r1 = ? 4. q1 = ? を 2 で割る。商は q2 = ?、余りは r2 = ? 5. q2 = ? を 2 で割る。商は q3 = ?、余りは r3 = ? 6. q3 = ? を 2 で割る。商は q4 = ?、余りは r4 = ? 7. q4 = ? を 2 で割る。商は q5 = ?、余りは r5 = ? 8. q5 = ? を 2 で割る。商は q6 = ?、余りは r6 = ? 9. q6 = ? を 2 で割る。商は q7 = ?、余りは r7 = ? 10. 余りを r7 から r0 まで順に並べると ? 11. 0b を先頭に付ける 12. n = 8 ビットの 2 進数 0b? が得られる
指定した場所で上の穴埋め問題を解いて下さい。
演習 1-2 (個人): テキストの手順に従って演習 1-1 で得られた 2 進数を 10 進数に変換してみましょう。
A = ?・128 + ?・64 + ?・32 + ?・16 + ?・8 + ?・4 + ?・2 + ?・1
= ? + ? + ? + ? = 53
指定した場所で上の穴埋め問題を解いて下さい。
演習 1-3 (個人): 演習 1-1 で得られた 2 進数を 16 進数に変換してみましょう。
指定場所に解答して下さい。
演習 1-4 (個人): 演習 1-1〜1-3 の結果が正しいかプログラムを使って確認してみましょう。
フォルダ「FP_1_4」を新規作成し、その中に移動します
フォルダ「FP_1_4」の中で新規に 1 つソースを作ります。ファイル名を「Main.cpp」とします。
Main.cpp にテンプレートの内容をコピーします。
一旦実行確認します。
先頭で定義している変数 double A の値を 53、int n_int の値を 8 に変更してもう一度実行確認します。
指定場所に「ソース」「出力結果」を貼り付けて下さい。
演習 1-5 (個人): テキストの手順に従って 10 進数の -53 を 2 進数に変換してみましょう。桁数は n = 8 とします。
A = -53 とする
1. |A| = 53 の 2 進数は演習 1-1 より n = 8 ビットの 2 進数 0b ? 2. 先頭ビットが 0 なので桁数 n はそのまま 3. 1 と 0 をひっくり返すと 0b ? 4. 1 を足して n = 8 ビットの 2 進数 0b ? が得られる
指定した場所で上の穴埋め問題を解いて下さい。
演習 1-6 (個人): 演習 1-5 で得られた 2 進数を 16 進数に変換してみましょう。
指定場所に解答して下さい。
演習 1-7 (個人): 演習 1-5〜1-6 の結果が正しいかプログラムを使って確認してみましょう。
フォルダ「FP_1_4」を「FP_1_7」にコピーして、その中に移動します
「Main.cpp」を開きます
main 関数内の A の値を -53 に変更して実行確認します。
指定場所に「ソース」「出力結果」を貼り付けて下さい。
演習 1-8 (個人): テキストの手順に従って 10 進数の 0.1 を 2 進数に変換してみましょう。ただし有効桁数 を n = 4 ビットとします。
A = 0.1 とする
1. 有効桁数 を n = 4 ビットとする 2. A に 2 をかけると ? 。積の整数部分は r{-1} = ?、積から r{-1} を引いた残りは p{-1} = ? 3. p{-1} = ? に 2 をかけると ? 。積の整数部分は r{-2} = ?、積から r{-2} を引いた残りは p{-2} = ? 4. p{-2} = ? に 2 をかけると ? 。積の整数部分は r{-3} = ?、積から r{-3} を引いた残りは p{-3} = ? 5. p{-3} = ? に 2 をかけると ? 。積の整数部分は r{-4} = ?、積から r{-4} を引いた残りは p{-4} = ? 6. p{-4} = ? に 2 をかけると ? 。積の整数部分は r{-5} = ?、積から r{-5} を引いた残りは p{-5} = ? 7. n = 4+1 = 5 回繰り返したので計算終了 8. r{-1} を先頭に r{-5} まで順に並べて ? 9. 0b を先頭に付けると ? 10. 最後のビット(r{-5}) が ? なので最後のビットを ? 11. n = 4 ビットの 2 進数 0b ? が得られる
指定した場所で上の穴埋め問題を解いて下さい。
演習 1-9 (個人): テキストの手順に従って演習 1-8 で得られた 2 進数を 10 進数に変換してみましょう。
A = ?・(1/2) + ?・(1/4) + ?・(1/8) + ?・(1/16)
= ? + ? + ? + ? = ? = ?
指定した場所で上の穴埋め問題を解いて下さい。
演習 1-10 (個人): 演習 1-8 で得られた 2 進数を 16 進数に変換してみましょう。
指定場所に解答して下さい。
演習 1-11 (個人): 有効桁数 n = 4 ビットで 10 進数の 0.1 を 2 進数に変換した時の丸め誤差はいくつでしょうか。
指定場所に解答して下さい。
演習 1-12 (個人): 演習 1-8〜1-11 の結果が正しいかプログラムを使って確認してみましょう。
フォルダ「FP_1_7」を「FP_1_12」にコピーして、その中に移動します
「Main.cpp」を開きます
先頭で定義している変数 double A の値を 0.1 に変更して実行確認します。int n_decimal は 4 のままで結構です
指定場所に「ソース」「出力結果」を貼り付けて下さい。