ゆるゆるプログラミング

・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で扱う変数について解説

■新着情報

2020.09.03 お札とコインの数 必要なお札と硬貨の枚数?
2020.08.27 ポーカーの役判定 ポーカーの役を判定
2020.08.25 ゾロ目の出る確率 サイコロの目のでる確率は?
2020.08.24 文字列配列をint配列に変換 String[]→int[]
2020.08.24 文字列配列をdouble配列に変換 String[]→double[]
2020.08.19 キーボード入力値を配列に格納 キーボード入力→配列
2020.08.19 キーボード入力値をリストに格納 キーボード入力→リスト
2020.08.19 キーボード入力 ScannerクラスとSystem.inを使用

■広告

フィギュア予約最大25%OFF+ポイント5%還元!ホビーサーチ

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

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

Topへ