はじめに
プログラミングを学んだ時、2進数を知りました。
しかし、業務で使うわけではないので、流して来ましたが、プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識を読み、2進数について気になり調べたことを共有いたします。
内容は人間とコンピューターと数え方の違いと2進数の計算方法になります。
2進数とは
二進数とは
「0」と「1」の組み合わせで表現される数字
であり
「0」「1」「10」……のように、それぞれの桁の数字が「2」になると桁上がりする数字のこと
です。
人間は10進数、コンピューターは2進数
人間は10進数で数えるが、コンピューターは10進数で数えることができず、
2進数を使います。
言語ごとに数値の言い方が違うのと同じ様なことかな
言語 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
日本語 | いち | に | さん | よん |
英語 | one | two | three | four |
中国語 | イー | アル | サン | スー |
数進数 | ■ | ■■ | ■■■ | ■■■■ |
---|---|---|---|---|
2進数 | 1 | 10 | 11 | 100 |
10進数 | 1 | 2 | 3 | 4 |
なぜコンピューターは2進数を使うのか?
コンピューターはICを使って数字を数えます。
しかし、ICは、1本のピンで0Vと5Vの2つの状態しか表すことができません。
## なぜ人間は10進数を使うのか?
諸説はあるものの、人間の手足の指の本数に由来しているためらしいです。
## 2進数計算方法
まずは重みについて知りましょう。
10進数なら下位桁から1,10,100,1000,…と,桁が上がるごとに10倍されていきます。2進数の場合は,下位桁から1,2,4,8,…と桁が上がるごとに2倍されていきます。これを桁の「重み(おもみ)」と言います。10進数だから10倍,2進数だから2倍なのだと考えてください。
[【5分で覚えるIT基礎の基礎】ゼロから学ぶ2進数 第2回]
(https://xtech.nikkei.com/it/members/ITPro/ITBASIC/20020617/1/#:~:text=%E2%97%8F,-2%E9%80%B2%E6%95%B0%E3%81%8B%E3%82%89&text=2%E9%80%B2%E6%95%B0%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AF,%E3%81%A0%E3%81%A8%E8%80%83%E3%81%88%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82)
数値とは、その数値を構成する各行の数値に重みをかけた値を合計した結果で表します。
数進数 | 1桁目 | 2桁目 | 3桁目 | 4桁目 |
---|---|---|---|---|
2進数 | 2の0乗(=1) | 2の1乗(=2) | 2の2乗(=4) | 2の3乗(=8) |
10進数 | 10の0乗(=1) | 10の1乗(=10) | 10の2乗(=100) | 10の3乗(=1000) |
10進数で数値を表すときは
数値 | 1桁目 | 2桁目 | 3桁目 | 4桁目 | 5桁目 | 6桁目 | 7桁目 | 8桁目 | 計算方法 |
---|---|---|---|---|---|---|---|---|---|
39 | 9×10⁰ | 3×10¹ | 0×10² | 0×10³ | 0×10⁴ | 0×10⁵ | 0×10⁶ | 0×10⁷ | 0+0+0+0+0+0+30+9 |
164 | 4×10⁰ | 6×10¹ | 1×10² | 0×10³ | 0×10⁴ | 0×10⁵ | 0×10⁶ | 0×10⁷ | 0+0+0+0+0+100+60+4 |
2進数で数値を表すときは
数値 | 1桁目 | 2桁目 | 3桁目 | 4桁目 | 5桁目 | 6桁目 | 7桁目 | 8桁目 | 計算方法 |
---|---|---|---|---|---|---|---|---|---|
39 | 1×2⁰ | 1×2¹ | 1×2² | 0×2³ | 0×2⁴ | 1×2⁵ | 0×2⁶ | 0×2⁷ | 0+0+32+0+0+4+2+1 |
164 | 0×10⁰ | 0×10¹ | 1×10² | 0×10³ | 0×2⁴ | 1×2 | 0×2⁶ | 1×2⁷ | 128+0+32+0+0+4+0+0 |
参考
二進数
なぜコンピューターは2進数を使うのか
【基本情報】なぜ、コンピュータで2進数を使うの?
数学的に美しいのは「12進法」なのに私たちが「10進法」を使っている理由