0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

5、2進数の足し算とひき算

Posted at

足し算とひき算の基本は10進数と変わりない。
桁が上がったり下がったりする時の数が異なる。

・足し算

 1111
+ 101
____
10100

1+1は10なので桁上がり
1+0+1は10なのでまた桁上がり
1+1+1は11なのでまたまた桁上がり
1+1は10またまたまた桁上がり
繰り上がった1がそのまま入る

・ひき算
ひき算を考える前に、負の数は補数を使って表す。

補数は2つある
①その桁数で最大値を得る為に補う数
②次の桁に繰り上がる為に補う数

・10進数では9の補数と10の補数
10進数123という数があるとする。
3桁の最大値は999
999 -123=876←9の補数

次の桁に上がる数は1000
1000 -123=877←10の補数

・2進数では1の補数と2の補数を使う
☆4桁の2進数0011という数があるとする。
4桁の最大値は1111
1111 -0011=1100(いくつ足せばその数になるか考える)
       ↑これが1の補数
1100という数値を補ってやれば最大値が得られる。

次の桁に繰り上がる数は10000
10000 -0011=1101(いくつ足せばその数になるか考える)
        ↑これが2の補数
1101という数値を補ってやれば桁上がりする数が得られる。

負の数を表すのに2の補数を使う。
<2の補数の簡単な求め方>
10進数の3は、8ビットの2進数では00000011 
①全てのビットを反転させる(0と1を入れ替える)→11111100 
②それに1を加算する
10進数の-3は、2進数では、11111101  ←2の補数

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
5-3を4けた2進数で表すと、
0101-0011
-0011は、+(-0011)とも表せる。
-0011は、2の補数表現を使って、1101と表せる。

つまりコンピューターは、
このような足し算を使って2という答えを出す。
0101+1101=(10010←桁あふれしたビットは切り捨て。)0010
(5) (-3)  (2)

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

☆ちなみに2の補数を使って負の数を表す場合も、
1ビット目は符号として扱うことができる。
先頭のビットが0の場合は負の数、
0は正の数を表す。

☆正の数と負の数は、互いに2の補数表現となる関係にある。

−8 -7 -6 -5 ~ -2 -1 0
1000 1001 1010 1011 ~ 1110 1111 0000
_ 7 6 5 ~ 2 1
_ 0111 0110 0101 ~ 0010 0001

☆負の数の方が表せる数が1つ多くなることに注意する。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?