チュートリアル

▷2進数、10進数、8進数、16進数のシステム

目次:

Anonim

コンピュータサイエンス、電子工学、または工学系の学生である場合、番号付けシステムの変換を実行することを知っておく必要があります。 計算では、使用される番号付けシステムは、10進数システムと同様に、私たちが伝統的に知っているものとは異なります。 そのため、コンピューティング、プログラミング、および類似のテクノロジーの両方の分野に専念する場合、最も使用されているシステムと、あるシステムから別のシステムに変換する方法を知る必要があります。

コンテンツインデックス

番号付けシステムの変換を実行する方法

コンピュータのコンポーネントが直接機能する番号付けシステムであるため、10進数から2進数への変換システムとその逆を知ることは特に役立ちます。 しかし、16進法を知ることも非常に役立ちます。これは、たとえば、チームからのカラーコード、キー、および多数のコードを表すために使用されるためです。

ナンバリングシステム

番号付けシステムは、有効な番号を作成するための一連の記号とルールの表現で構成されています。 つまり、他の数値を制限なく形成できる一連の境界記号を使用することで構成されます。

定義の数学的な用語にあまり深く入り込むことなく、人間と機械が最も使用するシステムは次のようになります。

10進法

これは、数量が10の算術基底で表される位置番号付けシステムです。

基数は10であるため、私たちが知っている10の数値を使用してすべての図を作成することができます。 0、1、2、3、4、5、6、7、8、9 。 これらの数字は、任意の数字の形成における10の累乗の位置を表すために使用されます。

したがって、この番号付けシステムでは、次の方法で数値を表すことができます。

10進数は、各項が占める位置1に累乗した基数10による各値の合計であることがわかります。 他の番号付けシステムでの変換については、このことを覚えておきます。

バイナリシステム

バイナリシステムは、算術基底2を使用するナンバリングシステムであり、コンピュータとデジタルシステムが内部で使用して、すべてのプロセスを完全に実行するシステムです。

この番号付けシステムは、2桁( 0と1 )だけで表されるため、2(2桁)に基づいています。これにより、すべての値チェーンが構築されます。

8進法

これまでの説明と同様に、これが8進法について何であるかはすでに想像できます。 Octalシステムは、算術ベース8が使用される番号付けシステムです。つまり、すべての数値を表すために8つの異なる数字を使用します。 これらは、0、1、2、3、4、5、6、7です。

16進法

前の定義に従って、10進数は16に基づく位置番号付けシステムです。この時点で、たとえば10が2つの数値の組み合わせである場合、16の異なる数値をどのように取得するのかを自問します。違う?

非常に単純ですが、私たちではなく、問題のシステムを発明した人たちが発明しました。 ここにある数字は、 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、Fです。 これにより、合計16の異なる用語が作成されます。 色の数値コードを設定したことがある場合は、このタイプの番号が付けられています。これが、たとえば白が値FFFFFFとしてどのように表されるかを確認できる理由です。 これが何を意味するかは後で説明します。

2進法と10進法の間の変換

最も基本的で理解しやすいので、これら2つの番号付けシステム間の変換から始めます。

数値を2進数から10進数に変換する

最初のセクションで説明したように、10進数は、値の合計に10の累乗を掛けた位置1で乗算したものとして表します 。 これを、対応する基数を持つ任意の2進数に適用すると、次のようになります。

1 0 0 1 1

0

1・2・5 1 2 4 1 2 3 1・2 2 1 2 1

1・2 0

しかし、もちろん、10進法のように手順を実行すると、0と1以外の値が得られます。これらは、この番号付けシステムでしか表現できない値です。

しかし、正確には、これは10進法への変換を実行するのに非常に役立ちます。 ボックス内の各値の結果を計算してみましょう:

1 0 0 1 1

0

1・2 5 = 32

1・2 4 = 0 1・2 3 = 0 1・2 2 = 4 1・2 1 = 2

1・2 0 = 0

さて、各セルから得られたこれらの値の合計を作成すると、バイナリ値の10進数に相当する値が得られます。

100110の10進数値は38です

数字(0または1)に、図で占める位置1まで上げられた基数(2)を掛けるだけで済みます。 値を加算すると、数値が10進数になります。

納得していない場合は、反対のプロセスを実行します。

10進数を2進数に変換する

数値の乗算と合計を行って10進数の値を決定する前に、次に行う必要があるのは、10進数を、変換するシステムの基数(この場合は2)で除算することです。

これ以上の分割ができなくなるまでこの手順を繰り返します。 それがどのように行われるかの例を見てみましょう。

38 19 9 4 2 1
除算

÷2 = 19

÷2 = 9 ÷2 = 4 ÷2 = 2 ÷2 = 1

-

休憩 0 1 1 0 0

1

これは、連続する分割を最小限にした結果です。 これがどのように機能するかは、すでにご存じかもしれません。 ここで、各除算の残りを取り、 その位置反転すると、10進数の2進数値が取得されます。 つまり、分割を逆方向に終了したところから開始します。

したがって、次の結果が得られます。100110

ご覧のとおり、セクションの冒頭とまったく同じ数になっています。

小数10進数から2進数への変換

よく知られているように、10進数全体だけでなく、実数(分数)も見つけることができます。 また、番号付けシステムとして、10進法から2進法に数値を変換できるようにする必要があります。 私たちはそれを行う方法を見ています。 例として38, 375の数を考えてみましょう

私たちがしなければならないことは 、各部分を分離する ことです 。 整数部分の計算方法はすでに知っているので、小数部分に直接進みます。

手順は次のようになります。小数部を取り、システムのベース、つまり2で乗算する必要があります乗算結果は、小数部が0になるまで再度乗算する必要があります 。 乗算を実行するときに、整数部を含む派閥数が表示される場合、次の乗算の分数のみを取得する必要があります。 例を見て理解を深めましょう。

0.375 0.75 0.50
掛け算 * 2 = 0.75 * 2 = 1.50

* 2 = 1.00

全体 0 1

1

ご覧のとおり、小数部を取り、結果が常に0になる1.00に到達するまでそれを再度乗算しています。

バイナリの38, 375の結果は100になります110, 011

しかし、プロセスで1.00の結果に到達できない場合はどうなりますか? 38, 45の例を見てみましょう

0.45 0.90 0.80 0.60 0.20 0.40 0.80
掛け算 * 2 = 0.90 * 2 = 1.80 * 2 = 1.60 * 2 = 1.20 * 2 = 0.40 * 2 = 0.80 * 2 = 1.60
全体 0 1 1 1 0 0

1

ご覧のように、0.80からプロセスは定期的なり ます 。つまり、0.8から0.4までの数字が常に表示されるため、 手順が完了することはありません 。 次に、結果は10進数の近似値になります。遠くに行くほど、精度が高くなります。

つまり、38.45 = 100 110, 01110011001 1001

逆のプロセスを行う方法を見てみましょう

小数の2進数を10進数に変換

このプロセスは、コンマからの累乗が負になることを除いて、通常のベース変更と同じ方法で実行されます。 前の2進数の整数部分を取りましょう:

0 1 1 1 0 0

1

0・2 -1 = 0 1-2 -2 = 0.25 1・2 -3 = 0.125 1・2 -4 = 0.0625 1・2 -5 = 0 1・2 -6 = 0 1・2 -7 = 0.0078125

結果を追加すると、次の結果が得られます。

0.25 + 0.125 + 0.0625 + 0.0078125 = 0.4453

操作を続けた場合、38.45の正確な値にますます近づきます。

8進法と2進法の間の変換

次に、10進数ではない2つのシステム間で変換を実行する方法を確認します。このため、 8進数システムと2進数システムを使用し、前のセクションと同じ手順を実行します。

数値を2進数から8進数に変換する

8進法の基数は2進法の基数と同じですが、3、2 3 = 8の累乗になるため、両方の番号付けシステム間の変換は非常に簡単です。 したがって、これに基づいて、2項を右から左に3つのグループにグループ化し、10進数に直接変換します。 100110という番号の例を見てみましょう。

1 0 0 1 1 0
100 110
0・2 2 = 4 0・2 1 = 0 1・2 0 = 0 1・2 2 = 4 1・2 1 = 2 0・2 0 = 0
4 6

3桁ごとにグループ化し、10進数に変換します。 最終結果は、100110 = 46になります。

しかし、完璧な3人のグループがない場合はどうでしょうか。 たとえば、1001101には3つのグループと1つのグループの2つがあります。次の手順を見てみましょう。

0 0 1 0 0 1 1 0 1
001 100 110
0・2 2 = 0 0・2 1 = 0 1・2 0 = 1 0・2 2 = 0 0・2 1 = 0 1・2 0 = 1 1・2 2 = 4 1・2 1 = 0 1・2 0 = 1
1 1 5

手順に従って、用語の右からグループを取得し、最後に達したら、必要な数のゼロで埋めます。 この場合、 最後のグループ完了するには 2つ必要です。 したがって、 1001101 = 115

8進数を2進数に変換する

まあ、手順は反対のことをするのと同じくらい簡単です。つまり、3のグループで2進数から10進数に進みます。115で見てみましょう

価値 1 1 5
除算 ÷2 = 0 0 0 ÷2 = 0 0 0 ÷2 = 2 ÷2 = 1 -
休憩 1 0 0 1 0 0 1 0 1
団体 001 001 101

このようにして、115 = 001001101または同じものは115 = 1001101であることがわかります。

8進法と10進法の間の変換

次に、8進数システムから10進数システムに、またはその逆に移行する手順を実行する方法を確認します。 手順は、10進法と2進法の場合とまったく同じで 、基数を2ではなく8に変更するだけです。

小数部分の条件で直接手続きを行います。

10進数を8進数に変換する

decimal-binaryメソッドの手順に従って、 238.32の例で実行します。

全体。 8であるベースで除算します。

238 29日
除算 ÷8 = 29 ÷8 = 3 -
休憩 6 5

小数部、8である底を乗算します。

0.32 0.56 0.48 0.84 0.72
掛け算 * 8 = 2.56 * 8 = 4.48 * 8 = 3.84 * 8 = 6.72 * 8 = 5.76
全体 2 4 6 5

得られた結果は次のとおりです:238.32 = 356.24365…

8進数を10進数に変換する

それでは、反対のプロセスを実行してみましょう。 8進数356, 243を10進数に渡します。

5 6 2 4
3・8 2 = 192 5・8 1 = 40 6・2 0 = 6 2・8 -1 = 0.25 4・8 -2 = 0.0625 3・8 -3 = 0.005893

結果は192 + 40 + 6、0.25 + 0.0625 + 0.005893 = 238.318です。

16進法と10進法の間の変換

次に、16進数と10進数の変換プロセスを終了します。

10進数を16進数に変換する

10進2進法と10進8進法の手順に従って、 238.32の例で実行します。

全体。 ベースである16で除算します。

238 14
除算 ÷16 = 14 -
休憩 E E

小数部、基数である16を乗算します。

0.32 0.12 0.92 0.72 0.52
掛け算 * 16 = 5.12 * 16 = 1.92 * 16 = 14.72 * 16 = 11.52 * 16 = 8.32
全体 5 1 E B 8

得られた結果は次のとおりです。238.32= EE、51EB8…

数値を16進数から10進数に変換する

それでは、反対のプロセスを実行してみましょう。 16進数のEE、51Eを10進数に渡します。

E E 5 1 E
E16 1 = 224 E・16 0 = 14 5・16 -1 = 0.3125 1・16 -2 = 0.003906 E16 -3 = 0.00341

結果は:224 + 14、0.3125 + 0.003906 + 0.00341 = 238.3198…

まあこれらは、ベースをある番号システムから別の番号システムに変更するための主な方法です。 これらのシステムは、計算の分野で最も使用されていますが、このシステムは、任意の基数のシステムと10進システムに適用できます。

また興味があるかもしれません:

質問がある場合は、コメントに残してください。 お手伝いさせていただきます。

チュートリアル

エディタの選択

Back to top button