【正解の解説】
$1.0 \times 2^{-126}$
浮動小数点数は「± 1.仮数部 × 2^指数部」という形式で表されます。これは定規の目盛りのようなもので、目盛りの限界を超えて小さすぎる値を表そうとしたときにアンダーフローが起きます。今回の問題では、隠しビットが1なので仮数部の実質的な数値は1.0となり、利用できる最も小さな指数が-126であるため、掛け合わせると1.0 × 2^-126がこの形式で表現できる限界の最小値となります。これは、身長を測るメジャーで1ミリ未満が測れず「これ以上測れません」とゼロになってしまう現象に似ています。
【その他の選択肢の解説】
$1.0 \times 2^{-127}$
試験では「指数部の最小値=そのまま式の指数に使える」と勘違いさせる罠がよく出題されます。単精度浮動小数点数において指数部が表せる最も小さな値は、バイアス表現の都合上-126または-127が関わってきますが、正規化数としての限界値を作るルールでは-126が最小の指数として使われます。これをうっかり-127にしてしまうと、表現できる範囲を超えてアンダーフロー領域に突入してしまうため、正規化された数としては正しくありません。
$0.0 \times 2^{-126}$
IEEE 754などの浮動小数点数規格では、ケシードビット(隠しビット)と呼ばれる仕組みがあり、正規化された数値の整数部分は常に1であるという前提で、それをあえてビットとして保存せず省略しています。そのため、見かけ上は仮数部が0であっても、実際には「1.0」がそこに隠れているものとして計算されます。これを丸ごと「0.0」としてしまうと、数式全体がゼロになってしまい、浮動小数点数としての意味をなさなくなるため注意が必要です。
$1.0 \times 2^{-127}$
この選択肢は選択肢Bと実質的に同じ誤りを内包しており、指数部の下限値を計算する際のオフセット値の引き算を誤解した受験生を引っかけるために用意されています。浮動小数点数の規格では、すべてのビットが0の組み合わせや1の組み合わせが特殊な用途(ゼロ、無限大、非数など)に予約されているため、単純に指数部のビット表現からそのまま下限を導き出すとズレが生じます。この仕組みの本質を理解していないと、見せかけの数値に惑わされて誤った選択肢を選んでしまいます。