基数変換

基数変換:10進数、2進数、16進数の双方向変換の方法

基数変換:10進数、2進数、16進数の双方向変換の方法

「進数」の基本:「重み」と「基数」

まずはじめに、すべての「進数」の基本となる「重み」と「基数」を身近な10進数を使って説明します。

「重み」とは

「重み」とは、それぞれのケタをあらわす数のことです。
たとえば「1,234(せん、にひゃく、さんじゅう、よん)」という数字はケタごとにばらばらにすると、1の位(くらい)が「4」、10の位が「3」、100の位が「2」、1000の位が「1」となります。「位(くらい)」は「桁(ケタ)」ともよばれています。そしてそれぞれの位(ケタ)は10の累乗(るいじょう)でもあらわすことができます。

 

それぞれのけたを10の累乗であらわすと、1けた目は「(1)」、2けた目は「(10)」、3けた目は「(100)」、4ケタ目は「(1000)」となります。このようにそれぞれのケタをあらわす「10の?乗」を「重み」といいます。ちなみに、「重み」にそれぞれのケタの数をかけたものを全て足すと元通りの数に戻ります。

 

 

累乗が少し分かりづらという方はこちらのページもあわせてみてみてください。

 

このように、重みとはそれぞれのケタをあらわすときに累乗であらわす方法なのです。

 

基数とは

「基数」とは重みであらわす累乗のもとになる数のことです。
「10進数」での基数は「10」なので、もしも3桁の数である100の位をあらわすときには「」のように、累乗の基本の「同じ数」を「何回かける}かの「同じ数」が「10」になります。

 

もちろん、4桁の数である1000の位をあらわすときでも「」と「同じ数」の「10」は変わらずに「何回かける」かが「2」から「3」になっただけです。

 

このように、けたを表す基(もと)になる数なので「基数」といいます。
基数は10進数であれば「10」、2進数であれば「2」、16進数であれば「16」となり、この後に説明する進数を変えるときの基本になります。

 

この「重み」と「基数」という基本を理解していれば、この後に説明する「2進数」を「10進数」に変換する方法はとてもカンタンに思えると思います。

2進数から10進数へ変える方法

「2進数」から「10進数」に変える(変換)する上で説明した「重み」重みの基準となる「基数」を使います。

 

2進数の「1101(いち、いち、ぜろ、いち)」を例にして説明します。

 

まず、10進数と同じようにそれぞれのケタの重みを考えます。「10進数」の場合は基数が「10」ですが、2進数の場合は基数が「2」なので基数を変えるだけでいいです。
このように、基数を変えることを「基数変換」といいます。

 

2進数の重み 参考:10進数のの重み

 

次に、それぞれのケタの重みとケタの数をかけて、すべて足すと答えが出ます。

 

  参考:10進数の場合

 

このように、それぞれケタの重みを先に考え、そのケタにの数とかけ算をしてすべて足せば答えがでます。

 

10進数の場合では、かけ算する数が最大で9になってしまうので計算が難しいですが、2進数はかけ算は「0」か「1」だけなので、けたの重みを暗記しておけば、けたに「1」があるところの数だけ全部足し算すればいいので暗算でできるので便利です。

 

8けた目 7けた目 6けた目 5けた目 4けた目 3けた目 2けた目 1けた目
 = 128  = 64  = 32  = 16  = 8  = 4  = 2  = 1

 

もちろん暗記しなくても、前の数の2倍になるということだけ覚えていれば、「1, 2, 4, 8」とだけ覚えておいて、「8」の次は「2倍の16」さらに次も「16の2倍の32」とすぐに暗算でできるようになると思います。

 

 

10進数から2進数へ変える方法

10進数から2進数へ変換するには、2進数のそれぞれのケタの重みをある程度暗記して行う方法と、かんたんな割り算でおこなう方法があります。

 

2進数の重みを暗記して行う方法

 

たとえば「197」という10進数を2進数にするには、下の表のようにある程度、2進数の重みを頭に入れておきます。

 

 

 

8けた目 7けた目 6けた目 5けた目 4けた目 3けた目 2けた目 1けた目
 = 128  = 64  = 32  = 16  = 8  = 4  = 2  = 1

 

そして、「97」から引ける一番大きな重みの数を探して、その2進数のケタを「1」にすることを最後0になるまで繰り返します。

 

今回の例では、以下のようになります。

 

@「97」から引ける一番大きい2進数の重みは「64」なので、7けた目を1として「100 0000」にする。

 

A「97」から「64」を引いたあまりの「33」から引ける一番大きい重みは「32」なので6ケタ目を1として「110 0000」にする。

 

B「33」から「32」引いたあまりの「1」から引ける一番大きい重みは「1」なので1けた目を1として「110 0001」とする。

 

C「1」から「1」引いたあまりは「0」なので、「110 0001」が97の2進数になる。ただし2進数は8ケタを基本とするので、8ケタにならない場合には、8ケタになるまで0でケタ追加します。そのため答えは「0110 0001」となります。

 

割り算を使う方法

おなじく「97」という10進数を2進数にするには、下のように逆さまの2の割り算を書き、余りがあれば1、なければ0と書き、それを割り切れるか、最後1になるまで繰り返します。

 

そして、一番下の答えから上に向かって順番に余りの数字を並べて書いていくと「110 0001」と2進数の答えになります。
このとき、上のEで説明したとおり、8ケタにならない場合には左側に0を追加しなければならないので、答えは「0110 0001」となります。

 

10進数から16進数へ変える方法

「10進数」から「16進数」へ変換するには、いきなり変換するのではなく、先に「10進数」から「2進数」さらに「10進数」へ変換し、そのあとに「16進数」へ変換するのがカンタンです。

 

× 「10進数」→「16進数」
「10進数」→「2進数」「10進数」「16進数」

 

上の「10進数」から「2進数」へ変換したのと同じように、「10進数」の「61」を例に「16進数」へ変換する方法を説明します。

 

「10進数」から「2進数」へ

まず、「10進数」から「2進数」へ変換します。上の例の比較的カンタンな割り算を使って「61」を下のように「2進数」へ変換します。

 

 

答えは「111101」ですが、8けたに合わすため0のケタを足して「2進数」では「00111101」となります。

 

「2進数」から「16進数」そして「10進数」へ変換

つづいて、「2進数」から「16進数」へ変換します。このとき「2進数」のケタを右から4ケタずつに分けて「10進数」にします。

 

 

「10進数」を「16進数」へ変換

そして4ケタずつに分けた「10進数」を「16進数」へ変換します。変換するときの注意ですが、「10進数」では「0, 1, 2, 3, 4, 5, 6, 7, 8, 9」の10種類の数字を使いますが、「16進数」では「0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F」の16種類の数字を使います。この10進数と16進数を比べると以下のようになります。

 

「10進数」と「16進数」対比表
10進数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
16進数 0 1 2 3 4 5 6 7 8 9 A B C D E F 10

 

このように、「10進数」では「10」でケタ上がりしますが、「16進数」ではその後も「A, B, C, D, E, F」とケタ上がりせずにつづきます。また、「10進数」では、けた上がりして「10」と2ケタになりますが、1けたで10種類の記号を使う「10進数」に比べ、1けたで16種類の記号を使う「16進数」では「10進数」の「16」になるまでケタ上がりはしません

 

上の表を見ながら、さっきの「3」と「13」を「16進数」にすると、それぞれ「3」と「D」になります。これをつなげて「3D」と書くのが16進数です。

 

 

16進数から10進数へ変える方法

「16進数」から「10進数」へ変換するには、「16進数」のそれぞれのケタを「2進数」にし、その後に「10進数」にします。

 

さきほどと同じ16進数の「3D」を例に説明します。

 

「16進数」から「2進数」へ

まず、「16進数」から「2進数」へ変換します。

 

 

 

16進数から2進数へ変える方法

「16進数」から「2進数」へ変換するには、「16進数」の各けた「10進数」に変換し、そのあとに「2進数」に変換します。「16進数」の「3D」を例に説明します。

 

「16進数」から「10進数」に変換。

まず、「16進数」から「10進数」に変換します。上でも利用した「10進数」と「16進数」の対比表を使うと便利です。

「10進数」と「16進数」対比表
10進数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
16進数 0 1 2 3 4 5 6 7 8 9 A B C D E F 10

 

「10進数」から「2進数」へ変換する。

つづいて、「10進数」になった、「3」と「13」それぞれを「2進数」に変換します。
小さい値なので、割り算の計算をしないで、対比表を使って計算するとかんたんです。

 

「10進数」と「2進数」対比表
10進数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2進数 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111

 

「11」と「1101」となります。これをそのまま並べると「11 1101」です。そして、8けたに足りないケタに「0」を追加して「0011 1101」すれば変換完了です。

 

このように、「16進数」から「2進数」へ変換するには、途中で「10進数」に変換してから「2進数」へと変換すればよいのです。

 

16進数:3D → 2進数:00111101

 

2進数から16進数へ変える方法

「2進数」から「16進数」へ変換するには、「2進数」から「10進数」に変換し、そのあとに「16進数」にします。「2進数」の「0011 1101」を使用して説明します。

 

「2進数」から「10進数」へ変換する。

「2進数」から「10進数」へ変換するには、上で説明したとおりですが、ケタが大きくないので対比表を使うと便利です。

 

「2進数」と「10進数」対比表
2進数 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
10進数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

 

「0011」を探すと「10進数」では「3」ということが分かり、さらに「1101」を探すと「13」ということが分かります。

 

つづけて「10進数」の「3」と「13」をそれぞれ、「16進数」へ変換します。

 

「10進数」から「16進数」へ変換する。

「10進数」の「3」と「13」を「16進数」へ変換するには、ケタが大きくないので対比表を使うと便利です。

「10進数」と「16進数」対比表
10進数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16進数 0 1 2 3 4 5 6 7 8 9 A B C D E F

 

対比表を見ると「10進数」の「3」と「13」はそれぞれ「16進数」の「3」と「D」となります。

 

このように、「2進数」から「16進数」へ変換するには、途中で「10進数」に変換してから「16進数」へと変換すればよいのです。

 

2進数:0011 1101 → 16進数:3D

 


スポンサーリンク

管理人


ホーム サイトマップ
HOME