数の数え方
私たちは数字を数えるとき、1、2、3…と続いて9になった時、次は桁が上がって10になりますね。
つまり、10(9の次)個目までいくと一桁目は0に戻り、二けた目にひとつカウントされます。
このように10になるごとに桁が進む数え方を10進数といいます!
私たちが日常で使っている数字の数え方は10進数なんですね。10進数では0から9の10個の数字を使います。
しかしコンピューターはどうでしょうか。コンピューターは内部の信号、オンとオフでの判断しかできません。
つまりコンピューターが扱えるのは0(オフ)か1(オン)の数字のみです。これでは10進数で表すことはできませんね。
コンピューターは0か1のふたつしか表現できません。10進数では10個の数字を使うのであれば、2つの数字のみで数を表現できる方法があればコンピューターでも数を扱えますね!
0と1の2つの数字のみで数を数える方法を2進数といいます!
2進数でも0、1と数えていきますが、2進数では2は使えないので1の次に桁上がりをして10になります。このように繰り返していくと
0 → 1 → 10 → 11 → 100 …
このように数えることができます!10進数で2は2進数では10と表示するんですね。
〇進数っていうのは〇の数になったら繰り上がるということ?
そうだね!2進数なら2になったら次の桁に繰り上がるよ。
基数と基数変換
桁上がりの基準になる数字を基数といいます!10進数では10で桁上がりするので基数は10、2進数では基数は2、といったようにです。何進数かどうかを明記する場合はかっこをつけて右下に基数を書きます。
(110)2
これは2進数で110ですよー、ということです。つまり10進数だと6になります。
ここで気になるのが、(110)2だと10進数の場合6、じゃあ(101100)2は?
…1から順番に数えていくのは大変ですよね。そこで便利な考え方があります。
ではここで何進数かを変換する基数変換をやってみましょう!
重み
まずは2進数から10進数に基数変換してみましょう!
基数変換をするには重みが重要となります!
例えば私たちが普段使う10進数で385と言うとき、三百八十五と発音します。これは百が3個、十が8個、一が5個だからこう呼ぶんですね。この桁の基準を重みといい、一桁目は基数の0乗、二桁目は基数の1乗(ここでは十)、三桁目は基数の2乗(ここでは百)となります。なので385は重みを使って表現すると
3×102+8×101+5×100=385
となるわけです!
2進数から10進数への基数変換
これは2進数でも同じです。2進数では2のほにゃらら乗が重みとなるので、先ほどの(101100)2の場合だと
1×25+0×24+1×23+1×22+0×21+0×20=32+8+4=44
となります!桁が多いと長くなっちゃいますけど仕組みは簡単ですね!
これで2進数から10進数への基数変換が可能になりました!
10進数から2進数への基数変換
では逆はどうでしょうか?そのまま逆にして考えてみましょう!
44には25より大きく、26より小さいですね。つまり25を一個含みます。
そしてそれを44から引いて
44-25=12
そして次は一個重みを下げて24が含んでいるか確認します。24は16なので0個です。
そしてまた一つ重みを下げて考えます。23は12に含みますからそれを12から引いて…。
というのを0になるまで繰り返すと、44は25と23と22を含んでいることになります。なので
25 | 24 | 23 | 22 | 21 | 20 |
1 | 0 | 1 | 1 | 0 | 0 |
これで44は2進数だと101100であるといえますね!
計算は苦手…。
ここらへんはIPAの資格試験に頻出だから、しっかり計算できるようにしておこう!
コンピューターは2進数で動く!
私たちが理解している数の数え方とコンピューターの数の数え方は違ったんですね。そしてそれの変換の仕方も説明しました。他にも1桁に16個の数字(文字)が入る16進数もよく使われます。普段はあまり意識しないかもしれませんが、このような仕組みなんだなぁ~と理解してみてください!
次の記事では2進数の負の数の表現方法を紹介していますので、よかったらこちらもご覧ください!
コメント