[mathjax]
2進数とは
我々が普段使っている数字は「10進数」と呼ばれるものです。
「10進数」では10になると上の位に繰り上がりますが、「2進数」では2になると繰り上がります。
コンピュータでは2進数が使われています。
これは、2進数での「0」と「1」を電圧の強弱に対応させることが出来て都合がいいからです。
2進数→10進数
こちらのほうが簡単です。
その前に10進数とはどういうことなのか。例えば1234を考えてみます。
\(1234=1\times 10^3+2\times 10^2+3\times 10^1+4\times 10^0\)
ということなのです。
同様に2進数の1101はどう書けるか。2進数なので10ずつ区切っていたものが2に代わります。
\(1101=1\times 2^3+1\times 2^2+1\times 2^0\)
例
\(1101_{(2)}=1\times 2^3+1\times 2^2+1\times 2^0=13\)
\(10110_{(2)}=1\times 2^4+1\times 2^2+1\times 2=22\)
10進数→2進数
\(26\)があるとします。さて、どうするか。
2の累乗を考えると \(26\) には\(16\) を含んでいます。
\(26=16+10\)
\(10\)は次に小さい\(8\)を含んでいます。
\(10=8+2\)
つまり、
\(26=16+8+2=\)\(1\times 2^4+1\times 2^3+0\times 2^2+1\times 2^1+0\times 2^0\)
これは\(11010_{(2)}\) を意味しています。
次に、これを別の形で捉えます。2で順番にくくっていくと
\(1\times 2^4+1\times 2^3+0\times 2^2+1\times 2^1+0\times 2^0\)
\(=2\times (2\times (2\times(2+1))+1)\)
ちょっと、ややこしいですがこうなります。
これは
一回目\(2\)で割ると 商 \(2\times(2\times (2+1))+1\) あまり \(0\)
さらに\(2\)で割ると 商 \(2\times (2+1)\) あまり \(1\)
さらに\(2\)で割ると 商 \(2+1\) あまり \(0\)
さらに\(2\)で割ると 商 \(1\) あまり \(1\)
これ、青字部分を見てください。下から見ると\(11010\) となり、二進数になっています。これが2進数で教科書に載ってる(私の時は載ってました)2進数筆算のからくりです。