Help us understand the problem. What is going on with this article?

学習メモ / 2進数の補数

2進数の補数とは?補数を使って何が出来るかをまとめます。

何が出来る?

「補数」を使えば、2進数でマイナスを表現出来る。例えば、2進数同士の引き算の計算をするときに使える。

補数とは

Wikipedia
ある基数法において、ある自然数aに足した時、桁が1つ上がる数のうち最も小さい数

例えば、10進数で考えてみる

ある数に何を足したら10になるか考える。
例えば、4の補数は6(4に6を足すと10になるので)。

次に補数を使って引き算をしてみる。
引き算をするには、「補数を足し、上位の1桁を無視」することで計算できる。

例:
7−4

① 4の補数は6

② 7に補数を足す
= 7+6
= 13

③ 10の位を無視する
= 3

2進数でやってみる

流れは一緒なので、2進数で引き算をしてみる。
やり方は、同じく「補数を足し、上位の1桁を無視」。

例:
1111 - 1101 (10進数では15 - 13)

① まず、1101の補数を求める。
1101の補数 = 0011

2進数の補数の求め方:
ビットを反転させて1を足す。

1101
↓ 反転
0010
↓ 1を足す
0011

なので、1101の補数は0011

補数であるか確認してみる。
1101 + 0011 = 10000 (桁が1つ上がったので補数)

② 補数を足し
1111 + 0011 = 10010

③ 上位の1桁を無視
0010

結果:0010(10進数で2)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした