符号付数値表現

コンピュータの世界では、を表現する方法は多岐にわたります。特に、負のを扱う際には、いくつかの異なるアプローチが存在します。この記事では、符号付値表現における主要な4つの方式、すなわち符号・絶対値表現、1の補、2の補、そしてエクセスN表現について詳しく解説します。

符号・絶対値表現



符号・絶対値表現は、私たちが日常的にを扱う方法に最も近い表現方法です。この方式では、値の符号(正または負)を示すために1つのビット(符号ビット)を使用し、残りのビット値の絶対値を表します。符号ビットが0であれば正の、1であれば負のと解釈されます。例えば、8ビットの符号・絶対値表現では、十進の-43は二進で10101011と表され、+43は00101011と表されます。

この表現の範囲は、8ビットの場合、-127から+127までとなります。しかし、この方式には、0を+0と-0の2通りで表せるという欠点があります。初期のコンピュータではこの方式が採用されていましたが、現在のコンピュータではあまり使用されていません。

1の補



1の補表現では、負のは元のビットを反転させることによって得られます。例えば、二進の00101011(43)の1の補は11010100(-43)となります。ここでも、0は+0(00000000)と-0(11111111)の2通りの表現があります。この表現範囲は、8ビットの場合、-127から+127となります。

1の補を用いた加算では、通常の二進加算に加えて、桁あふれ(キャリー)を結果に足し戻す必要があります。例えば、-1と+2を加算する際、通常の加算では正しい結果が得られないため、キャリーを足し戻すことで正しい結果を得ます。この方式は、かつてのコンピュータで広く使用されていましたが、現在は2の補表現が主流となっています。

2の補



2の補は、現代のコンピュータで最も一般的に使用されている負のの表現方法です。この方式では、負のは、1の補に1を加えることで得られます。この方法の利点は、0の表現が一意であり、加算時にキャリーの処理が不要な点です。

例えば、8ビットの整では、-1は11111111で表され、-128は10000000で表されます。また、あるの符号を反転させるには、そののすべてのビットを反転させてから1を加えるだけで、正負どちらのに対しても有効です。2の補表現での加算は、符号なしの値と同様に扱うことができます。ただし、オーバーフローの検出方法は異なります。

エクセスN



エクセスN表現は、固定された正の整N(バイアス値)を用いてを表現する方式です。ある整は、元の値にNを加えた符号なし整として表現されます。例えば、0はNとして表され、-Nは0として表されます。Nには、通常、2のべき乗から1を引いた値が用いられます。この表現は、浮動小の指部でよく使用されます。例えば、IEEE浮動小点標準では、単精度浮動小数点数ではエクセス127、倍精度浮動小数点数ではエクセス1023が採用されています。

各表現の比較



表現方法 4ビット表現例 範囲 0の表現 加算時の処理 主な用途
:--- :-- :--- :-- :- :--------
符号・絶対値 +3: 0011, -3: 1011 -7 to +7 2通り なし 初期のコンピュータ、一部の十進コンピュータ
1の補 +3: 0011, -3: 1100 -7 to +7 2通り キャリーバック かつてのコンピュータシステムIPv4ヘッダーチェックサム
2の補 +3: 0011, -3: 1101 -8 to +7 1通り なし 現代のコンピュータシステムの整演算
エクセスN -3: 0101, +3: 1011 N-8 to N+7 1通り なし 浮動小の指

まとめ



コンピュータにおける負のの表現は、その歴史の中で様々な進化を遂げてきました。符号・絶対値表現から始まり、1の補、そして現代の主流である2の補へと発展してきました。エクセスN表現は、浮動小の指部を効率的に扱うために広く利用されています。これらの表現方法を理解することは、コンピュータの内部動作を理解する上で非常に重要です。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。