2016.02.16

数値

2進数(binary)

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ボルトというような感じです。

以上です。

関連コンテンツ

プログラミングで使う変数って何?

2020.03.23

基本的な計算である足し算(加法)/引き算(減法)/掛け算(乗法)/割り算(除法)を行うプログラム作成。

2020.03.23

入力した10進数を2進数に変換するプログラムを作ってみませんか?

2016.02.26

コンピューター(computer)の意味を説明しています。

2022.07.22

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

自然数と整数って何が違う?

2020.03.23

複数の数値の合計値と平均値を計算するプログラムをJavaのソースコードを使って解説しています。

2020.03.23

コンピュータは、いくつかの装置から構成されています。その主な5つの装置(機能)って何?

2022.07.10

数値を2進数で表したときの各桁の「0」と「1」に対して演算を行えます。4種類の演算、AND(論理積)、OR(論理和)、XOR(排他的論理和)、NOT(否定)を詳しく説明しています。

2016.03.26

2進数の桁を左右のどちらかに指定回数だけずらすビットシフトについて詳しく解説しています。

2016.04.03

"-128~127"の範囲の値を持もつことができるbyte型の値を、符号無しのint型の値にする方法は?

2019.07.09

double型のもつ誤差について解説しています。

2016.02.15

リテラル(literal)の意味を説明しています。興味がある方は是非ご覧ください。

2020.03.23

偶数・奇数を判定する方法を詳しく説明しています。興味のある方は、ご覧ください。

2015.11.17

文字列の2進数を、int型の整数に変換する方法を詳しく解説しています。

2020.11.02

広告