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

バイナリ減算

10進数に適合した標準的な手法を使用して、ある2進数を別の2進数から減算できます(各ビットペアの右から左への減算、必要に応じてビットから左への「借用」)。ただし、すでにおなじみの(そしてより簡単な)2進加算の手法を利用して減算できるのであれば、それはより良いでしょう。

先ほど学習したように、「2の補数」法と負の場所の重みビットを使用して、負の2進数を表すことができます。ここでは、これらの負の2進数を使用して、加算によって減算します。

問題の例を次に示します。

減算:7  10  -5  10  同等の追加:7  10  +(-5  10  )。 

7と負の5を2進数(2の補数)形式で表すだけの場合、必要なのは3ビットと負の重みビットだけです。

ポジティブセブン=0111  2  負の5 =1011  2  

それでは、それらを一緒に追加しましょう:

。 1111 <---キャリービット 。 0111 。 + 1011 。 ------ 。 10010 。 | 。余分なビットを破棄します 。 。回答=0010  2  

数値ビットフィールドはすでに3ビットと負の重みビットとして定義されているため、回答(1)の5番目のビットは破棄され、結果は0010 2 になります。 、または正の2つ、これが正解です。

その余分なビットを破棄する理由を理解するもう1つの方法は、小さい数値の左端のビットが負の重み(この場合は負の8に等しい)を持っていることを覚えておくことです。

これらの2つの2進数を合計すると、実際にMSBで行っているのは、上位の数値のMSBから下位の数値のMSBを減算することです。減算では、1桁またはビットを次の左の場所の重みに「運ぶ」ことはありません。

別の例を試してみましょう。今回は数値を大きくします。 -25 10 を追加したい場合 18 10 まで 、最初にバイナリビットフィールドの大きさを決定する必要があります。

問題の最大(絶対値)数である25を表すには、少なくとも5ビットと、負の重みビット用の6番目のビットが必要です。まず、正の25を表し、次に2の補数を見つけて、すべてを1つの数え上げにまとめます。

 +25  10  =011001  2  (6ビットすべてを表示) 11001  2 の補数 =100110  2  1の補数+1 =2の補数=100111  2  -25  10  =100111  2  

基本的に、負の32と正の7(バイナリ111 2 )の値を持つ負の重み(6番目)のビットを使用して、負の25を表します。 。

。 18  10  =010010  2  。 。それでは、それらを一緒に追加して、何が得られるかを見てみましょう。 。 。 11 <---キャリービット 。 100111 。 + 010010 。 -------- 。 111001 

左側に「余分な」ビットがなかったため、破棄するビットはありません。答えの左端のビットは1です。これは、2の補数形式で、答えが否定的であることを意味します。すべてのビットにそれぞれの重み値を掛けて合計することにより、回答を10進形式に変換すると、次のようになります。

(1 x -32  10  )+(1 x 16  10  )+(1 x 8  10  )+(1 x 1  10  )=-7  10  

確かに-7 10 -25 10 の適切な合計です および18 10

関連するワークシート:


産業技術

  1. 科学としてのエレクトロニクス
  2. ホームラボのセットアップ
  3. 電圧計の使用法
  4. 抵抗計の使用法
  5. 非常に単純な回路
  6. 3ビットバイナリカウンタ
  7. 10進数と2進数
  8. 8進数と16進数の数値
  9. バイナリ加算
  10. x86 上のアーム用のコンテナー ビルド
  11. Go on PLCnext を使ってみる