ここでは2進数と16進数と10進数の相互変換を学びます。
n進数を理解できてない人は、こちらを参考にしてください。
ここではコンピュータでも利用される数値の表現方法を学習しましょう。 数値の表現方法に2進数と16進数と呼ばれる仕組みがあります。これは2進数なら0と1のみ、16進数なら0から15の数値で数を表現する方法です。 全く分かりません。 難しく考えなくて大丈夫だよ。まずn進数という仕組みを理解しようね。 n進数の概念 身近に使ってる表現に10進数があります。これは1, 2, 3 . . .と数えて10になったら桁が上がる仕組みです。 じゃあ、2進...
2進数を10進数に変換する方法
これは全てのn進数に言える理論です。まずn進数の桁上りについて考えてみましょう。
n進数において桁が上がると言うことは、小さい位で表現できなくなったので、次の位を+1して、元の位を再度0から始めることです。
これは下位桁の数値が全て上位桁に加算されたことを意味します。
何も分かりませんでした。
10進数で考えると簡単だよ。桁の概念を使って10進数で128ってどんな数字だと思う?
100の位が1、10の位が2、1の位が8の数字です。
そうだね。これは単に1と2と8を繋げてるだけじゃないんだ。
実際には(100 x 1) + (10 x 2) + (1 x 8) = 128と言う式が成り立ってるよ。
この位の考え方が非常に大切になります。そして位で利用する数字はn進数のべき乗と同値となります。
10進数のべき乗は1, 10, 100, 1000, 10000 . . .と続きますが、〇〇の位と一致しますよね。
これは2進数でも16進数でも同じです。それを踏まえて2進数のべき乗を考えてみましょう。
先に言っておくと、この数字は頻繁に使うので暗記した方がいいです。と言うか嫌でも覚えます。
では、問題です。2進数で10100011を10進数にすると?
(1 x 128) + (0 x 64) + (1 x 32) + (0 x 16) + (0 x 8) + (0 x 4) + (1 x 2) + (1 x 1) = 163です。
10進数を2進数に変換する方法
次は10進数を2進数に変換する方法です。こちらもn進数の全てで同じことが言えます。
文字で書くと、10進数の数字をn進数のnで割り切れなくなるまで割ります。
その時の余りを記録しておき、逆に繋ぐと目的のn進数になります。
言葉って難しいですね。
そう言われると思って説明を用意したよ。10進数の175を2進数に変換してみよう。
やり方は分かったけど大変ですね。エンジニアの人は毎回こんな方法で変換してるんですか?
いい疑問だね。さっきの話はあくまで理論の説明だよ。
現実的な話をすると、さっきの筆算みたいな方法を真面目に使う人は居ないよ。
という事で、以降は現実的な変換方法と、そもそもの話をします。
理論を知るのは大切なこと、さっきの手法はどこかで役に立つかもしれませんよ。
2進数を10進数に変換する方法 (オススメ)
2進数を10進数にするのは簡単です。
正攻法と対して変わりませんが、以下の画像を頭に浮かべます。そして1になってる部分を全部足せば10進数になります。
10進数を2進数に変換する方法 (オススメ)
次に10進数を2進数にする方法です。こちらも先程の画像を頭に浮かべます。
そして2進数のどこに1を付けたら10進数になるのか、大きい位から順番に考えます。
10進数と2進数と16進数を変換する方法 (超オススメ)
先程の方法の欠点は大きな数字の計算が無理なことです。そんな時にオススメしたいのがこれ。
Windowの電卓を使います。そうコンピュータの力を借りるのです。
電卓で暗算部分を計算するの?
違うよ。Windowの電卓には入力された数字を10進数、2進数、16進数、ついでに8進数で表示する機能があるよ。
真面目に計算しろって怒られませんか?
この業界は優秀な人ほどツールを駆使して時短します。
そもそも人間の筆算なんて信用する方が無意味なので、コンピュータを信じましょう。
という事で、電卓で変換する方法です。
あとがき
変換方法を理解してれば手で計算する必要なんてありません。何をするにもツールを使うことを考えましょう。
ついでに、もう一つの現実的な話をします。実は10進数や2進数をお互いに変換することは殆どありません。
それは2進数や16進数を使う場合、そのままの進数表現で使いたい場合が大半だからです。
簡単な例を上げるなら、2進数は0と1しか使えないので、それをONかOFFのフラグとして使う場合があります。
この使い方においては10進数にすることに意味がなく、そのまま2進数で使ったほうが価値があるのです。
◆ コンピュータサイエンスに関する学習コンテンツ
この記事は参考になりましたか?
コメント