LoginSignup
0
0

More than 3 years have passed since last update.

十進法と二進法

ふだん我々が日常で使っている数字は「0,1,2,3...7,8,9」までの10種類です
そして最大値の9を超えると10になり、桁が増えます

このような表現を「十進法」といいます

これに対し、「1」と「0」の二種類で表現する
たとえば「0」で始まるとすぐに最大値の1に行き当たり、十進法でいうところの「2」ではなく「10」と表現する
十進法の「3」は11、続く「4」は100となり再び桁が上がります
これを2進法といいます

十進法の表現 0 1 2 3 4 5 6 7 8 9 10
二進法の表現 0 1 10 11 100 101 110 111 1000 1001 1010

「である」か「ではない」のデジタル情報

コンピュータのデジタル情報は、「である = 1」か「ではない = 0」で表します
※この場合は0 = 無ではなく、「ではない」という情報があります

デジタル情報を入力し、主にCPUで演算したあと出力するわけです
「である」か「ではない」、オンかオフか、真(true)か偽(false)かの2択は、この情報の受け渡しや演算に伴うノイズを極力排するには都合がいいのです
もちろん、我々の前に出力される情報が生の「0や1」であるわけではないのですが

なお、様々なプログラムも
だいたいは

  • 進む
  • 「である」か「ではない」
  • 繰り返し

から成り立っています

変換法【二進数 → 十進数】

「1」になっている桁固有の「重み」をすべて合算した数が、十進数の数値になります

重みとは?

2の0乗は1です
なんとなく納得がいきにくいかと思いますが、1です

2の1乗は2です
2の2乗は4...
2の3乗は8...
2の4乗は16...
2の5乗は32...
2の6乗は64...
2の7乗は128...
と倍々に増えていきます
これからは○○乗にあたる数値を、nという文字に当てはめます
nは位の順から1を引いた数になります

例えば、2進数の数値10110101は

数値 1 0 1 1 0 1 0 1
位の順 8 7 6 5 4 3 2 1
n 7 6 5 4 3 2 1 0
重み 128 64 32 16 8 4 2 1
数値 × 重み 128 0 32 16 0 4 0 1

1になっている桁の重みを合算すると
128 + 32 + 16 + 4 + 1 =
181

これが10進数における数値となります

変換法【十進数 → 二進数】

では、この181をまた二進数にしてみましょう

その方法は、
2で割った余りを並べるものです

そして商を2で割り続けて...
最後が1になったらそのまま1を表に入れ

余り
181 / 2 90 1
90 / 2 45 0
45 / 2 22 1
22 / 2 11 0
11 / 2 5 1
5 / 2 2 1
2 / 2 1 0
1 1 1

下から並べると「10110101」
上の数値と同じになりました

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0