ゆるゆるプログラミング

・2進数

2進数は0と1だけで数値を表現したものです。具体的には、0010010、11001のように表現されます。

この表現は、コンピュータ内部で扱っている数値の表現方法なので、プログラムを作る際に理解したほうが良い知識のひとつです。Javaの変数に格納されている値も2進数で表現されています。

2進数で正の整数を表現する場合、1番右の桁は1の位、その左が2の位、その左が4の位のように2のn乗の位で表すことができます。

2進数の桁の重み

この説明を馴染みある10進数で行うと、1番右の桁は1の位、その左が10の位、その左が100の位のように10のn乗の位で表されます。

10進数の桁の重み

下の図は、10進数の値17298を各桁の位(重み)の位置に割り当て、各桁の値と重みの掛け算の合計により、10進数の値を再計算した例です。

10進数 再計算

2進数を10進数に変換する方法は、この10進数の考え方と同じです。違いは各桁に入れることができる値の範囲と位の値(重み)です。

それでは、具体的な2進数の値を例に、その値が10進数でいくつかであるかを確認してきます。下の図の左側に青色の4桁の2進数が9個あります。この9個の2進数の各桁を、それぞれ対応する桁の位(重み)の位置に割り当て、その重みと各桁の2進数の値を掛け合わせた値の合計を求めることで10進数を計算しています。一番右の赤の数字が得られた10進数の値です。この説明では掛け算を使っていますが、2進数の場合には各桁の値は0か1なので、値が1の桁の重みを合計するだけで10進数の値を求めることができます。

2進数→10進数変換

このように、コンピュータ内部では、0と1の数字だけで数値および文字を表現してます。コンピュータで2進数が使われている理由は、CPU(中央演算装置)などの電子回路を作る上で都合が良いためです。実際の電子回路では、0と1という値をもっておらず、電圧で0と1を表現しています。例えば0は0ボルト、1は5ボルトというような感じです。

■関連プログラム

10進数→2進数変換 10進数→2進数変換について
変数について Javaで扱う変数について解説

■新着情報

2017.11.17 N値化 カラー画像をN値化する方法について解説
2017.11.16 最も近い値の取得 指定値に最も近い配列の値を取得する方法を解説
2017.10.02 アルファ値(透過) アルファ値(透過)について

■広告

法人向けのETC専用カード

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

Topへ