200を2進数に変換します。
(200)10 → (11001000)2
情報活用編プラス
第2章「コミュニケーションと情報デザイン」
IP01-04
桁数の多い数と文字のデジタル表現
先ほどの手順を踏まえて、実際に挑戦してみましょう。
第1問 次の10進数を、IEEE754の形式の浮動小数点表現に変換し、16進数8桁で答えなさい。
(185)10
前のスライドで示した、200を変換する手順を載せておきます。
必要に応じて確認しましょう。
手順1
200を2進数に変換します。
(200)10 → (11001000)2
基数変換の方法を忘れた場合は、IP01-02の「基数変換」で学び直しましょう。
手順2
求めた2進数の値を、IEEE754の形式に従い正規化します。
(11001000)2
↓
↓整数部分が1つだけ残るように小数点を7つシフト
↓
(1.1001000)2 × 27
↓
↓0は省略
↓
(1.1001)2 × 27
↓
↓符号を判別するため(-1)を追加する。その上で200は正の数なので0乗する。
↓
(-1)0 × (1.1001)2 × 27
※0乗するとどんな数も1になる もし1乗した場合は-1がそのまま使われる。
手順3
各数値を確認します。
S・符号部:0
E・指数部:7 + 127 = 134
M・仮数部:1001
指数は127を足すこと、仮数は先頭の1は取り除くことを忘れずに!!
手順4
32ビットの表現に当てはめていきます。
S・符号部 = 0
手順5
E・指数部 = 134
134を2進数に変換すると、「10000110」となる
手順6
M・仮数部 = 1001
右に0を埋めて、23ビットにする
第2問 次のIEEE754の形式の浮動小数点表現の16進数を、10進数に変換して答えなさい。
(43A00000)16
前のスライドで示した、16進数の「C2300000」を変換する手順を載せておきます。
必要に応じて確認しましょう。
手順1
16進数の「C2300000」を2進数に変換する。
(C2300000)16 → (110000100011000・・・)2
16進数で表記されている場合は、2進数に変換した数値をそのまま32bitに当てはめてください。
この時に、符号部、指数部、仮数部を意識する必要はありません。
手順2
各値を変換し、計算します。
S・符号部:1
E・指数部:(10000100)2→(132)10
M・仮数部:01100・・・ → 1.011
仮数部の頭に「1.」をつけてください。右に並んだ0は全て省略できます。
(-1)1 × 1.011 × 2132-127
=(-1)1 × 1.011 × 25
= -101100
指数は、127を引くことを忘れずに!!
手順3
10進数に変換します。
-101100 = -42
※この再現版では提出は行いません(送信先は未接続です)