演習の解答例

演習 1

0.1 の ビット表現は となります。 これに IEEE 754 の正規化をすると となり、指数部は 123 = 0x7B、仮数部は 0x4CCCCD となります。

JavaScript で確認してみます。

const buffer = new ArrayBuffer(4);
const view = new DataView(buffer);
view.setFloat32(0, 0.1);
const bits = view.getUint32(0);
console.log(bits.toString(2).padStart(32, "0"));

実行結果は以下のようになります。

00111101110011001100110011001101

演習 2

省略

演習 3

32 ビット では、指数部の最大値が ビット表現で 11111110 のとき 、仮数部の最大値が ビット表現で 11111111111111111111111 のとき となります。 となりますが、丸め誤差により 3.40282347E+38 が最大値となります。

3.40282347E+38 の ビット表現をプログラムで確認してみましょう。

const buffer = new ArrayBuffer(4);
const view = new DataView(buffer);
view.setFloat32(0, 3.40282347E+38);
const bits = view.getUint32(0);
console.log(bits.toString(2).padStart(32, "0"));

実行結果は以下のようになり、最初の ビット表現と一致していることが確認できます。

01111111011111111111111111111111

results matching ""

    No results matching ""