検索

キーワード


目次

2進数の足し算・引き算(加減算)の方法と正の数・負の数、補数について解説!

  • 公開日:2021-03-26 17:36:19
  • 最終更新日:2021-03-29 18:43:55
2進数の足し算・引き算(加減算)の方法と正の数・負の数、補数について解説!

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

10進数で足し算・引き算(加算・減算)ができるように、2進数でも足し算・引き算ができます。


この記事を読むことで、

・2進数の足し算・引き算(加減算)

・負の数(-)の表し方

・1の補数と2の補数


以上のことが分かります。


また、基数・進数・桁の重みについてより詳しく知りたい方は、

基数とは?IT系国家試験の基本知識、2進数について解説

をご一読ください。基数についてより知ることができます!




2進数の足し算・引き算(加算・減算)

パソコンの写真

2進数の足し算・引き算は、10進数の計算と考え方は変わりません。


方法としては、

①2進数を10進数に変換し、10進数で計算して出た結果を2進数に再変換する

②2進数のまま計算をする


以上の2つがあります。




2進数の足し算(加算)

①2進数を10進数に変換し、10進数で計算して出た結果を2進数に再変換する


メリットは、いつも通りの計算ができる、ということです。

このやり方であれば、いつも通りの計算(10進数での計算)になるため、1が0が…などと考えなくてすみます。


デメリットは、変換する手間が増え、結果が出るまでに時間がかかる、ということです。

1.10進数への変換

2.結果を2進数へ再変換

この変換・再変換は大変手間です。


試験などの場合はおすすめのやり方ではありません。



②2進数のまま計算をする

2進数の足し算


2進数の足し算では、

・0+0=0

・1+0=1(0+1=1)

・1+1=10


以上の3種類で計算ができます。


2進数では「0と1」しか表現できない基数のため、1+1は桁上がりがおきるのです。


試験などの場合、2進数のまま足し算する方法がおすすめです。




2進数の引き算(減算)

2進数の引き算


2進数の引き算では、

・0-0=0

・1-1=0

・1-0=1

・0-1=1


以上の4種類で計算ができます。

0-1=1の計算に関しては、0から1が引けないため、上の桁から“1”を借りてきます。

10進数でも、引き算元の数値が足りない場合は、上の桁から数字を借りてきますよね、それと同じです。


10進数の場合、上から借りてくるものは“10”になります。

2進数の場合も同じく、上から借りてくるものは“10”(10進数に置き換えると“2”)です。


引き算元の数値が足りない場合、上の桁から借りてきます。

・2進数 → 10(10進数では“2”)

・10進数 → 10




負の数(-:マイナス)の表し方

前項では、足し算と引き算の計算のやり方が分かりました。

しかし、これは正の数(+:プラス)の計算にしか使えません。。

数値は正の数だけではなく、負の数(-:マイナス)が存在します。


負の数の計算はどうすればできるでしょうか?


2進数の考え方で、「先頭の桁(先頭ビット)を符号とする」があります。


例えば、8ビット(1バイト)で数値を表すとします。

その場合、先頭の桁(8桁目)を符号として、0→正の数・1→負の数、とします。


正の数・負の数


2進数においては、先頭の1ビットを符号用にすることで、正の数・負の数を表すことができるのです。


しかし、上記の数値を計算してみると、


2進数
 00000110+10000110=10001100


10進数
 6+(‐6)=0


このように、10進数ではきちんと解が“0”になりますが、2進数では解が“0”になりません。


この2進数の計算式を成立させるためには、計算結果が“0”になるように負の数を表現する必要があります。そこで登場するのが「補数」です。2進数ではマイナス値の計算を実現するために、「補数」でマイナス値を表現します。




補数とは?

算数の画像

補数とは、補う数という意味です。

補数には以下の2つがあります。

・その桁で最大値になるために補う数

・次の桁に繰り上がるために必要になる補う数


まず、10進数「528」を例に上げて解説します。


・その桁で最大値になるために補う数(9の補数)

528は3桁の数値です。

3桁の数値で表せる最大値は「999」です。


999にするためには、

x+528=999

x=999-528

x=471


528を999にするには、「471」を足します。

つまり、471という数値を補えば、999になる、ということです。


これを「9の補数」と呼びます。



・次の桁に繰り上がるために必要になる補う数(10の補数)

528は3桁の数値です。

3桁の次の桁は4桁なので、繰り上がったすぐの数値は「1000」です。


1000にするためには、

x+528=1000

x=1000-528

x=472


528を1000にするには、「472」を足します。

つまり、472という数値を補えば、1000になる、ということです。


これを「10の補数」と呼びます。



・その桁で最大値になるために補う数(1の補数)

それでは、2進数「0110」で補数がどうなるかを見てみましょう。

0110は4桁の数値です。

4桁の数値で表せる最大値は「1111」です。


1111にするためには、

x+0110=1111

x=1111-0110

x=1001


0110を1111にするには、「1001」を足します。

つまり、1001という数値を補えば、1111になる、ということです。


これを「1の補数」と呼びます。


1の補数は上記のような計算から求めることもできますが、もっと簡単に補数が分かる方法があります。


元の数値を反転させる、と言う方法です。


0110 → 1001  ①元の数値を反転させる

=1001       ②1の補数


反転させることで、1の補数が得られました。


・次の桁に繰り上がるために必要になる補う数(2の補数)

0110は4桁の数値です。

4桁の次の桁は5桁なので、繰り上がったすぐの数値は「10000」です。


10000にするためには、

x+0110=10000

x=10000-0110

x=1010


0110を10000にするには、「1010」を足します。

つまり、1010という数値を補えば、10000になる、と言うことです。


これを「2の補数」と呼びます。


2の補数は上記のような計算から求めることもできますが、もっと簡単に補数が分かる方法があります。


元の数値を反転させ、+1をする、と言う方法です。


0110 → 1001  ①元の数値を反転させる

1001+1      ②反転させた数値に+1をする

=1010           ③2の補数


反転させ+1で、2の補数が得られました。




2の補数を使った計算

コンピュータにおいて、引き算の計算というものはできません。

そこで、コンピュータでは「2の補数」を使って引き算と同じことを行っているのです。


ここで、前項での計算を補数を使ってやってみましょう。


2の補数


8ビットでの計算をしているため、8ビットから繰り上がりで9ビット目にある“1”は無視をします。


2進数
 00000110+11111010=00000000


2進数でも補数を使うことで、正確な計算ができました。



実際に計算をしてみます。

0110-0011

    +(-0011)

    10000-0011=1101(2の補数)…反転させ、+1

0110+1101=10011
		  桁上がりした数は無視をする

=0011


引き算の計算ができました。


2進数の引き算は、このように「補数」を使うことで計算ができることがわかりました。



まとめ

2進数の足し算・引き算について、分かったでしょうか?

2進数の計算には補数が大変重要になってきます。

理解するには、いくつか計算問題を解いてみていくのが良いでしょう!




【著者】

伊藤

Javaを研修で3か月学んだ、駆け出しのエンジニアです。
現在は、ベンダー資格を取得するため、勉強を日課にできるよう努力中です。

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事