工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

二進法オーバーフロー:符号ビットが二進法加算に与える影響

符号付き二進数を扱うとき、加算や減算の結果が、固定ビット数で表現可能な大きさを超えることがあります。この現象をオーバーフローと呼び、符号ビットの位置が計算開始時に固定されているために起こります。

以下の例では、大きさを表す5ビットと、最左(第6)ビットを符号ビットとして使用します。5ビットの大きさで 2⁵ = 32 通りの整数値を表現可能で、0から最大大きさまでです。したがって、表現可能な最大の正の数は +31₁₀(011111₂)、最小は −32₁₀(100000₂)です。

6ビット数値フィールドの制約

同じ6ビットフィールドを使用する2つの二進数を加算すると、結果が −32 〜 +31 の範囲外に出ることがあります。例えば、+17₁₀ と +19₁₀ を加算すると真の和は +36₁₀ ですが、5ビットの大きさでは表現できません。

二進法オーバーフロー:符号ビットが二進法加算に与える影響

二進法の答え 100100₂ は、第6ビットを −32₁₀ として解釈すると −28₁₀ となります。これは明らかに間違いです;真の和が6ビットフィールドの限界を超えるためオーバーフローエラーが発生します。左端の「繰り上げ」ビットを破棄すると誤った結果になります。

2つの負の数を加算しても同様の問題が起こります。−17₁₀ + −19₁₀ は −36₁₀ になるべきですが、6ビットフィールドでは正の28という結果になり、再びオーバーフローを示します。

二進法オーバーフロー:符号ビットが二進法加算に与える影響

第7ビットを符号ビットとして使用

フィールドを7ビットに拡張——大きさ6ビット、符号1ビット——すると、より大きな和を扱えます。以下の図は、フィールドが十分広いときに同じ問題が解決される様子を示します。

二進法オーバーフロー:符号ビットが二進法加算に与える影響

オーバーフローは、二進結果を十進法に戻して検出できますが、このアプローチは煩雑で電子回路には非現実的です。より効率的な方法は、和の符号に依存します。同じ符号を持つ2つの数を加算して、相反する符号の結果が出ればオーバーフローが発生しています。フィールドが十分であれば、2つの正の数の和が負になることはなく、2つの負の和が正になることもありません。

逆に、正と負の数を加算する場合、オーバーフローは決して起こりません。結果の和は常にどちらのオペランドよりもゼロに近いため、表現可能な範囲内に留まります。

これらのオーバーフロー検出ルールはデジタル加算器に実装され、コンピュータ算術の基礎概念となっています。

関連ワークシート:

産業技術

  1. 電子工作:誰にでもできる実践的科学
  2. 家庭用電子工作ラボの構築:ツール、作業エリア、消耗品
  3. 電圧計の使い方マスター:正確な電圧測定をシンプルに
  4. 555タイマーと4027フリップフロップによる3ビットバイナリカウンタ
  5. 十進法と二進法:位取り重み、効率、変換
  6. 八進法と十六進法:エンジニアのための実践ガイド
  7. 二進法加算のルール、例、デジタルコンピュータでの役割
  8. 二の補数を用いた二進法減算
  9. x86システム上での効率的なARMコンテナビルド
  10. PLCnextでGoアプリケーションを構築:初心者向けガイド
  11. オーバーフロー管の機能と安全設計:タンク溢水防護から非常時排出まで