FE EXAM

符号部(プラスかマイナスを決めるたった1ビット)

浮動小数点数で正負を決めるのは「符号部」と呼ばれる1ビットだけです。このビットを 0/1 で切り替えると、数直線上で値の位置が左右に反転します。

INTERACTIVE VISUALIZATION
正 (符号 0)
負 (符号 1)
符号ビット
0
絶対値
6.5
実値
+6.5
符号ビット
絶対値(仮数部・指数部の組み合わせ)6.5
数直線(符号ビットによる位置の反転)020+20負の側(符号ビット 1)正の側(符号ビット 0)+6.5
解説

📌
符号部とは

浮動小数点の最初のたった1ビットS符号指数部仮数部…

符号部とは、浮動小数点数の先頭にあるたった1ビットのことです。このビットだけで、その数が正か負かが決まります。

浮動小数点数(IEEE 754)は 「符号部 + 指数部 + 仮数部」の3つに分かれていて、符号部はそのうちの最も単純なパーツです。仮数部の「絶対値の大きさ」とは独立に、符号部だけで正負が決まります。

身近な例で考えると、「金額の前の + / − 記号」と同じです。中身の数字(絶対値)が同じでも、頭に付く符号が違えば意味が逆になります。

📌
0/1の意味

符号ビット意味
0正の数+6.5, +0.001, +12345
1負の数−6.5, −0.001, −12345

ルールはとてもシンプルです。
0 → 正の数
1 → 負の数
覚え方のコツ: 「0 はゼロ(中立)なので、まっすぐ正の側」「1 はマイナス記号の傾き」と関連づけると忘れにくくなります。

なお、整数の2の補数表現でも「最上位ビット = 符号」ですが、ルールが少し違います。
・整数の2の補数: 1だと負だが、絶対値の算出は反転+1が必要
・浮動小数点の符号部: 1だと負だが、残りのビットはそのまま絶対値を表す

上のツールで符号ビットだけを切り替えてみてください。絶対値(=6.5)はそのままで、点が数直線上で 0 を中心に左右にパッと反転するのが見えます。これが浮動小数点の符号部の動きそのものです。

📌
浮動小数点数全体での位置

浮動小数点数(IEEE 754 単精度・32ビット)のビット並びは次のようになっています。
1ビット目: 符号部(S)← このページのテーマ
・2〜9ビット目(8ビット): 指数部(E)
・10〜32ビット目(23ビット): 仮数部(M)

値の計算式は (-1)S × 1.M × 2E-127 と書かれます。最初の (-1)S が符号部の役割で、S=0 なら +1(符号変わらず)、S=1 なら −1(符号が反転)となります。

符号部の性質:
・ビット列の先頭が 1 のとき、その浮動小数点数は負の数
・+0 と −0 は、IEEE 754 では 同じ値(ゼロ)として扱うが、ビット列としては 2 通り存在する(符号ビット 0 と 1 の両方)
・他のビットは符号部とは独立して動く。指数部や仮数部を変えても符号は変わらない

関連コンテンツ