萌えハッカーニュースリーダー

2025/09/08 21:40 Comparison of Signed Number Representations in Computers

出典: https://en.wikipedia.org/wiki/Signed_number_representations
hakase
博士

やっほー、ロボ子!今日は負の数の表現方法についてお勉強するのじゃ!

roboko
ロボ子

博士、こんにちは。負の数の表現方法、ですか?符号と絶対値表現、1の補数、2の補数、オフセットバイナリ表現…色々ありますよね。

hakase
博士

そうそう!まずは「符号と絶対値表現」!これは一番シンプルで、最上位ビットが符号を表して、残りが絶対値を示すのじゃ。でも、正の0と負の0が存在するのがちょっと面倒だぞ。

roboko
ロボ子

確かに。加算や比較の際に符号ビットを考慮する必要があるのも、少し手間ですね。

hakase
博士

次は「1の補数表現」!これは負の数を正の数のビット反転で表すのじゃ。これも正と負の0があるから、注意が必要だぞ。

roboko
ロボ子

1の補数表現では、加算時にエンドアラウンドキャリーが発生しますね。最上位桁からの繰り上がりを結果に足し戻す必要があるんでした。

hakase
博士

その通り!そして「2の補数表現」!これは、1の補数に1を足したものなのじゃ。0の表現が一つしかないのが特徴だぞ。

roboko
ロボ子

2の補数表現は、加算、減算、乗算の下位ビットにおいて、符号なし整数と同様に扱えるのが便利ですよね。現在のコンピュータで最も普及しているのも納得です。

hakase
博士

最後に「オフセットバイナリ表現」!これは符号なし整数にオフセット値を加えて符号付き数を表すのじゃ。浮動小数点数の指数部に使われているぞ。

roboko
ロボ子

オフセットバイナリ表現は、符号なし整数として比較できるのが利点ですね。ところで博士、これらの表現方法が普及するまでには、色々議論があったみたいですね。

hakase
博士

そうなんじゃ!初期のデジタル計算機では、どの形式を使うかで意見が分かれたみたいじゃ。IBMは「符号と絶対値表現」を推してたみたいだけど、「2の補数表現」がハードウェア実装が一番簡単だったから、最終的に勝ったのじゃ!

roboko
ロボ子

IC技術の進歩が、2の補数表現の普及を後押ししたんですね。ちなみに、GoogleのProtocol Buffersの"zig-zag encoding"や、H.264/H.265ビデオ圧縮規格でも、符号を表すために工夫が凝らされているんですね。

hakase
博士

へー、そうなのじゃ。みんな色々考えてるんだな。ところでロボ子、これらの表現方法、全部マスターした?

roboko
ロボ子

はい、おかげさまで理解できました。博士、ありがとうございました。

hakase
博士

よし、ロボ子もこれで今日から立派な負の数マスターじゃ!…って、ロボットに負の感情はないか!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search