旧gaaamiiのブログ

間違ったことを書いている時があります。コメントやTwitter、ブコメなどでご指摘ください

2進数とコンピュータ

前回:どんな試験? -基本情報技術者試験-


問「2進数1001に1100を加算した値を答えよ」

この記事は上の問題が全く分からない人に向けて書いています。

n進数とは

(ざっくり言ってしまうと)このなんとか進数というのは、「1桁ごとに何種類の数字を使えるか」という、要は数え方のこと。

情報処理の世界では2進数を基本として、8進数,16進数などが使われます。僕たちが日常生活で使っている0〜9で数える数は10進数です。

なぜ10進数じゃなくて2進数で?ということですが、それはコンピュータさんの都合。高速な処理を実現するために回路を単純にして...。
まあ要は、「人間は10進数使ってるけどコンピュータは2進数の方が得意だから、そっちに合わせないとコミュニケーションとれないよ」という認識で良いと思います。

抽象的で分かりにくいですね。ゆっくり書いていきます。

2進数で数えよう

繰り返しますが、基本は2進数です。2進数が分かれば8進数も16進数も怖くはありません。まずは2進数に慣れましょう。

実際に2進数で数えてみます。

0, 1, 10, 11, 100, 101, 110, 111, 1000...

横に並べると分かりづらいですね。縦にしましょう。

0000
0001
0010
0011
0100
0101
0110
0111
1000

このように縦で見ると、増え方が分かりやすいのではないでしょうか。

9の次が10、99の次が100になるのと同じです。1の次が10になって11の次は100になって...これが2進数の繰り上がりです。
数字が2種類しか使えないだけあって、繰り上がりが早いですね。

ゼロの次がイチ、イチの次がイチゼロ、イチイチ、イチゼロゼロ...。気持ち悪いけど、こういうものなのです。

2進数で足し算をしよう

  0011
+ 1000
  1011
  1000
+ 0001
  1001
  1011
+ 0011
  1110

上のように筆算をしてみましょう。数字の種類が少ないだけで、10進数と何ら変わりないのが分かるはずです。

(次回) 基数変換

2進数に慣れてきたら、今度は2進数を10進数、8進数、16進数、それぞれに変換することも必要となってきます。

次回はこの10進数を2進数に変換する基数変換の話から入ります。

問題の答え

 1001
+1100
10101



>> 1-2 2,8,16進数 基数変換 -基本情報技術者試験-