Javaプログラミング学習サイト ゆるゆるプログラミング

2016/02/16 公開

・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の変数 Javaで扱う変数について解説
2進数を整数に変換 "11001"→25
文字数字を数値に変換 "12345"→12345

■新着情報

2021.06.18 変数の初期値 変数に値を代入しないで計算
2021.05.28 短針と長針の角度 短針と長針の角度は?
2021.05.19 各位(くらい)を求める 1の位の値は?10の位は?

■広告

Topへ