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

二の補数を用いた二進法減算

二進法減算は古典的なビット単位の借り算で実行できますが、二の補数算術を使うとさらにシンプルです。被減数を負の二進形式に変換してから加算することで、演算を単一の二進法加算に帰着させます。

二の補数では、正の数と同じビット幅で負の数をエンコードでき、先頭の「負の重み」ビットを使用します。正の数と負の数を加算すると、負のオペランドの最上位ビットが負の重みとして振る舞い、実質的に減算を実行します。

例1:7₁₀ − 5₁₀

各値を、3つのデータビットと1つの負の重みビットを用いた二の補数で表現:

正の7 = 0111₂
負の5 = 1011₂

これらを加算:

. 1111 ← 繰り上げビット
. 0111
. + 1011
. ------
. 10010
. |
. オーバーフロービットを破棄
. 結果 = 0010₂

オーバーフロービットは、最左位置が負の重み(−8)を表すため破棄されます。最終的な4ビットパターン 0010₂ は十進法の2に等しく、7 − 5 = 2 を確認します。

例2:18₁₀ + (−25)₁₀

必要なビット幅を決定。演算中の最大絶対値は25で、5ビット必要;負の重みビットを加えて計6ビット。

+25とその二の補数を表現:

+25₁₀ = 011001₂(6ビット)
11001₂ の一の補数 = 100110₂
1を加える → 二の補数 = 100111₂
−25₁₀ = 100111₂

正の18は:

18₁₀ = 010010₂

2つの数を加算:

. 11 ← 繰り上げビット
. 100111
. + 010010
. ------
. 111001

オーバーフローは発生しないため、結果 111001₂ のまま。最上位ビットが1なので二の補数では負の値を示します。十進法に戻すと:

(1 × −32) + (1 × 16) + (1 × 8) + (1 × 1) = −7

したがって 18 + (−25) = −7、期待通りです。

関連ワークシート:


産業技術

  1. 電子工作:誰にでもできる実践的科学
  2. 家庭用電子工作ラボの構築:ツール、作業エリア、消耗品
  3. 電圧計の使い方マスター:正確な電圧測定をシンプルに
  4. 抵抗計測の実践ガイド:オームメーターで様々な材料をテストする
  5. 基本の6V電池・ランプ回路の構築とトラブルシューティング
  6. 555タイマーと4027フリップフロップによる3ビットバイナリカウンタ
  7. 十進法と二進法:位取り重み、効率、変換
  8. 八進法と十六進法:エンジニアのための実践ガイド
  9. 二進法加算のルール、例、デジタルコンピュータでの役割
  10. x86システム上での効率的なARMコンテナビルド
  11. PLCnextでGoアプリケーションを構築:初心者向けガイド