2進数って結局なに?

アイキャッチ画像

はじめに

「コンピューターは0と1で動いている」

この説明を聞いたことがある人はたくさんいると思いますが、実際にどう使われているのか、なぜ必要なのかイメージできていない方もいるのではないでしょうか?

自分も新人の頃は基礎知識はあったものの、コンピューターの内部構造を深く理解していたわけではありませんでした。

特に現場で画像処理を担当していたとき、画像をピクセル単位(pix単位)で扱う場面が多くありましたが、当初は「なぜこの値になるのか」「どうしてこの範囲なのか」を感覚的に理解しているだけでした。

今回は、当時自分がつまずいたポイントや、理解できた体験を分かりやすく紹介します。

2進数とはなにか?

進数とは 0 と 1 だけで数を表す方法 です。

普段使っている 10 進数は 0〜9 の10種類の数字を使いますが、2進数はたった2種類しか使いません。

ここで大事なのは「2進数は特殊な数字ではなく、10進数と同じ”桁の仕組み”を持つ表記方法」という点です。

10進数では、

1000 は 「10^3」

10 は 「10^1」

というように、桁が「10の何乗」を表しています。

2進数もまったく同じ構造で桁が「2の何乗」を表しているだけです。

例えば、

10進数の「8」は、2進数では「1000」

1 x 2^3 

0 x 2^2 

0 x 2^1 

0 x 2^0

という意味で2の3乗 = 8 がそのまま表れているだけです。

つまり、

桁が増えるたびに「2倍ずつ増える」というシンプルな仕組みです。

最初は「なんでこんな面倒な表記を使うのだろう?」と疑問に思っていました。 

10進数のほうが直感的で分かりやすいのに、わざわざ0と1だけで表す理由があるのかと。 

この疑問は、コンピューターの仕組みを知ることで解消されました。

コンピューターが0と1で動く理由

コンピュータが2進数を使う理由はとても単純で、 電気が ON(1)か OFF(0)かの2状態しか扱えないから です。 

画像処理でも、内部では膨大なピクセル情報が存在していてピクセルの明度や色情報は、すべて「0と1の組み合わせ」で表現されています。 

この仕組みを理解したとき、

「なるほど、だから2進数なんだ」

さらに、ビットとバイトの概念を理解すると、コンピューターの世界が一気にクリアになります。

1ビット : 0 か 1のどちらか
8ビット (1バイト) : 0と1の組み合わせで256通り (0~255)

自分が扱っていた画像は0~255で表すと知ったとき、「なんで255までなのだろう?」と疑問に思いましたが、

2進数で表せる最大値が 11111111 (=255)と知った瞬間、すべてがつながりました。

2進数、10進数、16進数の違い

ここでは、よく使われる3つの表記方法を簡単に整理します。 

  • 2進数

コンピューター内部の表現。

0と1だけで構成される。

機械が扱いやすい表記。

  • 10進数

普段扱う数字。直観的で分かりやすい。

  • 16進数

2進数を読みやすくするための表記。

0~9 と A~Fを使う

例) 255 → 0xFF

16進数で値が表示される場面も多くあります。

最初は「Fって何?」と思っていましたが、 10進数の15を表すだけの話でした。

RGBの色コードが #FF0000 のように16進数で表されるのも、 2進数を読みやすくするための工夫です。

まとめ

2進数は一見難しそうに見えますが、

実際は「桁が増えると表せる数が倍になる」というシンプルな仕組みです。

さらに、2進数の理解は画像処理だけでなく、センサー出力の正規化や 10bit → 8bit のビット変換など、実務で頻繁に登場する処理の理解にも直結します。

数値の意味が分かることで、挙動やデータの変化を“理由を持って”説明できるようになり、業務の質が大きく向上しました。

画像をピクセル単位で扱う経験を通して、2進数の理解がコンピューターの動きを深く理解するための基礎になることを実感し、普段の業務がぐっと楽になりました。