コンピュータサイエンスの微積分システムの翻訳方法。 ナンバーシステム。 あるシステムから別のシステムへの転送

ある記数法から別の記数法に数値を変換する方法。

ある位置記数法から別の記数法への数の変換:整数の変換。

整数を基数d1のある記数法から基数d2の別の記数法に変換するには、商が基数d2より小さくなるまで、この数と結果の商を新しいシステムの基数d2で順次除算する必要があります。 最後の商は、の数値の最上位桁です。 新しいシステム基数がd2の数字、および次の数字は除算の余りであり、受け取りの逆の順序で書かれています。 変換された数値が書き込まれる記数法で算術演算を実行します。

例1.数値11(10)を2進数システムに変換します。

回答:11(10)= 1011(2)。

例2.数値122(10)を8進数システムに変換します。


回答:122(10)= 172(8)。

例3.数値500(10)を16進数システムに変換します。


回答:500(10)= 1F4(16)。

ある位置記数法から別の記数法への数の変換:通常の分数の変換。

基数d1の記数法から基数d2の記数法に通常の分数を変換するには、元の分数と結果の積の小数部分に新しい記数法d2の基数を順次乗算する必要があります。 基数d2の新しい記数法の数の正しい分数は、最初から始まる、結果の積の全体の形で形成されます。
変換が無限級数または発散級数の形の分数であることが判明した場合、必要な精度が達成されたときにプロセスを完了することができます。

混合数を変換する場合、整数部分と通常の分数を変換する規則に従って、整数部分と分数部分を別々に新しいシステムに変換し、両方の結果を新しい数システムで1つの混合数に結合する必要があります。

例1.数値0.625(10)を2進数システムに変換します。


回答:0.625(10)= 0.101(2)。

例2.数値0.6(10)を8進数システムに変換します。


回答:0.6(10)= 0.463(8)。

例2.数値0.7(10)を16進数システムに変換します。


回答:0.7(10)= 0、B333(16)。

2進数、8進数、16進数を10進数に変換します。

P-aryシステムの数を10進数に変換するには、次の展開式を使用する必要があります。
аnan-1...а1а0=аnPn+аn-1Pn-1+ ... +а1P+ a0。

例1.数値101.11(2)を10進数システムに変換します。

回答:101.11(2)= 5.75(10)。

例2.数値57.24(8)を10進数システムに変換します。

回答:57.24(8)= 47.3125(10)。

例3.数値7A、84(16)を10進数システムに変換します。

回答:7A、84(16)= 122.515625(10)。


8進数と16進数を2進数に、またはその逆に変換します。

数値を8進数システムから2進数に変換するには、この数値の各桁を3桁の2進数(トライアド)で書き留める必要があります。

例:数値16.24(8)を2進表記で記述します。


回答:16.24(8)= 1110.0101(2)。

2進数を8進数に逆変換するには、元の数値をコンマの左右で3つに分割し、各グループを8進数システムの数字として表す必要があります。 極端に不完全なトライアドにはゼロが埋め込まれます。

例:数値1110.0101(2)を8進表記で書き留めます。


回答:1110.0101(2)= 16.24(8)。

数値を16進数システムから2進数に変換するには、この数値の各桁を4桁の2進数(4進数)で書き留める必要があります。

例:数値7A、7E(16)を2進表記で記述します。


回答:7A、7E(16)= 1111010.0111111(2)。

注:整数の場合は左側、分数の場合は右側の先行ゼロは書き込まれません。

2進数を16進数に逆変換するには、元の数値をコンマの左右で4進数に分割し、各グループを16進数システムで数字として表す必要があります。 極端に不完全なトライアドにはゼロが埋め込まれます。

例:番号1111010,0111111(2)を16進表記で書き留めます。

2.3。 ある記数法から別の記数法への数値の変換

2.3.1。 整数をある記数法から別の記数法に変換する

基数を持つシステムから整数を変換するためのアルゴリズムを定式化することが可能です。 NS ベースのあるシステムに NS :

1.新しい記数法のベースは元の記数法の番号で表され、その後のすべてのアクションは元の記数法で実行されます。

2.除数よりも小さい商が得られるまで、新しい記数法に基づいて、結果の整数商の指定された数の除算を連続して実行します。

3.結果として得られる剰余は、新しい記数法の数字の数字であり、新しい記数法のアルファベットと一致させる必要があります。

4.新しい記数法で番号を作成し、最後の余りから書き留めます。

例2.12。 10進数17310を8進数システムに変換します。

次のようになります:173 10 = 255 8

例2.13。 10進数17310を16進表記に変換します。

173 10 = AD16を取得します。

例2.14。 10進数の1110を2進数表記に変換します。 上記で検討した一連のアクション(変換アルゴリズム)を次のように表す方が便利です。

11 10 = 10112を取得します。

例2.15。変換アルゴリズムを表の形式で書き留めた方が便利な場合があります。 10進数36310をに変換する 2進数.

仕切り

次のようになります:363 10 = 101101011 2

2.3.2。 分数をある記数法から別の記数法に変換する

基数で正しいロビを変換するためのアルゴリズムを定式化することが可能です NS ベースと分数に NS:

1.新しい記数法のベースは元の記数法の番号で表され、その後のすべてのアクションは元の記数法で実行されます。

2.製品の小数部分がゼロに等しくなるか、数値表現の必要な精度が達成されるまで、新しいシステムに基づいて、結果として得られる製品の小数部分の指定された数を順次乗算します。

3.結果として得られる製品の全体(新しい記数法の数字の数字)は、アルファベット順の新しい記数法と一致させる必要があります。

4.最初の製品の全体から始めて、新しい記数法で数の小数部分を構成します。

例2.17。 0.6562510を16進表記に変換します。

次のようになります:0.65625 10 = 0.52 8

例2.17。 0.6562510を16進表記に変換します。

NS 16

次のようになります:0.65625 10 = 0、A8 1

例2.18。 10進数の0.562510を2進表記に変換します。

NS 2

NS 2

NS 2

NS 2

0.5625 10 = 0.1001 2

例2.19。小数を2進表記に変換します0.710。

明らかに、このプロセスは無期限に継続する可能性があり、0.710に相当するバイナリのイメージの兆候がますます多くなります。 したがって、4つのステップで数値0.1011 2を取得し、7つのステップで数値0.10110012を取得します。これはバイナリでの数値0.710のより正確な表現です。 記数法、およびこのような無限のプロセスは、数値表現の必要な精度が得られたと見なされると、あるステップで終了します。

2.3.3。 任意の数の翻訳

任意の数の翻訳、すなわち 整数部分と小数部分を含む数値は、2段階で実行されます。つまり、部分全体が個別に変換され、小数部分が個別に変換されます。 結果の数値の最終レコードでは、整数部分が小数のコンマ(ドット)から分離されます。

例2.20..。 2進数を変換する17.2510。

取得:17.25 10 = 1001.01 2

例2.21。 124.2510を8進数システムに変換します。

124.25 10 = 174.2 8

2.3.4。 数値を基数2から基数2nに変換します。

整数の変換。 q-ary記数法の底が2の累乗である場合、q-ary記数法から2-ary記数法への、またはその逆の数の変換をさらに実行できます。 簡単なルール..。 底q = 2 nに整数の2進数を書き込むには、次のものが必要です。

1.2進数を右から左にそれぞれn桁のグループに分割します。

2.最後の左側のグループに含まれる桁数がn未満の場合は、左側に必要な桁数までゼロを埋め込む必要があります。

例2.22。数1011000010001100102を8進数システムに変換してみましょう。

数字を右から左にトライアドに分割し、それぞれの下に対応する8進数を書き留めます。

元の数値の8進数表現を取得します:5410628。

例2.23。数値10000000001111100001112は、16進数システムに変換されます。

数字を右から左に4進数に分割し、それぞれの下に対応する16進数を書き留めます。

元の数値の16進表現を取得します:200F8716。

分数の翻訳。基数q = 2 nに小数の2進数を書き込むには、次のものが必要です。

1.2進数を左から右にそれぞれn桁のグループに分割します。

2.最後の右グループに含まれる桁数がn未満の場合は、右から必要な桁数までゼロを追加する必要があります。

3.各グループをnビットの2進数と見なし、ベースq = 2nの対応する桁で書き留めます。

例2.24。数値0.101100012は、8進数システムに変換されます。

数字を左から右にトライアドに分割し、それぞれの下に対応する8進数を書き留めます。

元の数値の8進数表現を取得します:0.5428。

例2.25。数値0.1000000000112を16進数システムに変換します。 数値を左から右に4進数に分割し、それぞれの下に対応する16進数を書き留めます。

元の数値の16進表現を取得します:0.803 16

任意の数の翻訳。ベースq = 2 nに任意の2進数を書き込むには、次のものが必要です。

1.指定された2進数の整数部分を右から左に分割し、小数部分を左から右にそれぞれn桁のグループに分割します。

2.最後の左および/または右のグループにn桁未満の場合は、必要な桁数まで、左および/または右にゼロを追加する必要があります。

3.各グループをnビットの2進数と見なし、ベースq = 2nの対応する桁で書き留めます。

例2.26。数111100101,01112を8進数に変換してみましょう。

数値の整数部分と小数部分をトライアドに分割し、それぞれの下に対応する8進数を書き留めます。

元の数値の8進数表現を取得します:745.348。

例2.27。数値11101001000,110100102は、16進数システムに変換されます。

数値の整数部分と小数部分をノートブックに分割し、それぞれの下に対応する16進数を書き込みます。

元の数の16進表現を取得します:748、D216。

ベースq = 2の数値システムから数値を変換するnからバイナリ。基本q = 2 nシステムで記述された任意の数値を2進数システムに変換するには、この数値の各桁を、2進数システムで同等のn桁に置き換える必要があります。

例2.28.16進数の4АС3516を2進数の記数法に変換してみましょう。

アルゴリズムによると:

10010101100001101012を取得します。

自習課題(回答)

2.38。 表に記入します。各行に同じ整数を書き込む必要があります。 さまざまなシステム計算。

バイナリ

オクタル

10進数

16進数

2.39。 表に記入します。各行には、同じ小数を異なる数体系で書き込む必要があります。

バイナリ

オクタル

10進数

16進数

2.40。 表に記入します。各行には、同じ任意の数(整数と小数の両方を含めることができます)を異なる数体系で記述する必要があります。

バイナリ

オクタル

10進数

16進数

59、B

備考1

ある記数法から別の記数法に数値を変換する場合は、10進数への変換を開始してから、10進数から他の記数法への変換を開始する方が便利です。

数値を任意の記数法から10進数に変換するための規則

NS コンピューティング、機械演算を使用して、ある記数法から別の記数法への数の変換が重要な役割を果たします。 以下は、そのような変換(翻訳)の基本的なルールです。

    2進数を10進数に変換する場合、2進数を多項式の形式で表す必要があります。各要素は、数値の桁とそれに対応する基数の累乗の積として表されます。 この場合$ 2 $次に、10進算術の規則に従って多項式を計算する必要があります。

    $ X_2 = A_n \ cdot 2 ^(n-1)+ A_(n-1)\ cdot 2 ^(n-2)+ A_(n-2)\ cdot 2 ^(n-3)+ ... + A_2 \ cdot 2 ^ 1 + A_1 \ cdot 2 ^ 0 $

図1.表1

例1

数値$ 11110101_2 $は10進表記に変換されます。

解決。上記の$ 1 $基数$ 2 $の表を使用して、数値を多項式の形式で表します。

$ 11110101_2 = 1 \ cdot 27 + 1 \ cdot 26 + 1 \ cdot 25 + 1 \ cdot 24 + 0 \ cdot 23 + 1 \ cdot 22 + 0 \ cdot 21 + 1 \ cdot 20 = 128 + 64 + 32 + 16 + 0 + 4 + 0 + 1 = 245_(10)$

    数値を8進数から10進数に変換するには、多項式として表す必要があります。各要素は、数値の桁とそれに対応する基数の累乗(この場合は$ 8)の積として表されます。 $の場合、10進算術の規則に従って多項式を計算する必要があります。

    $ X_8 = A_n \ cdot 8 ^(n-1)+ A_(n-1)\ cdot 8 ^(n-2)+ A_(n-2)\ cdot 8 ^(n-3)+ ... + A_2 \ cdot 8 ^ 1 + A_1 \ cdot 8 ^ 0 $

図2.表2

例2

数値$ 75013_8 $は10進表記に変換されます。

解決。基数$ 8 $の$ 2 $度の表を使用して、多項式の形式で数値を表します。

$ 75013_8 = 7 \ cdot 8 ^ 4 + 5 \ cdot 8 ^ 3 + 0 \ cdot 8 ^ 2 + 1 \ cdot 8 ^ 1 + 3 \ cdot 8 ^ 0 = 31243_(10)$

    数値を16進数システムから10進数に変換するには、多項式として表す必要があります。各要素は、数値の桁とそれに対応する基数の累乗(この場合は$)の積として表されます。 16 $の場合、10進算術の規則に従って多項式を計算する必要があります。

    $ X_(16)= A_n \ cdot 16 ^(n-1)+ A_(n-1)\ cdot 16 ^(n-2)+ A_(n-2)\ cdot 16 ^(n-3)+。 .. + A_2 \ cdot 16 ^ 1 + A_1 \ cdot 16 ^ 0 $

図3.表3

例3

数値$ FFA2_(16)$は10進表記に変換されます。

解決。基数$ 8 $の$ 3 $度の表を使用して、多項式の形式で数値を表します。

$ FFA2_(16)= 15 \ cdot 16 ^ 3 + 15 \ cdot 16 ^ 2 + 10 \ cdot 16 ^ 1 + 2 \ cdot 16 ^ 0 = 61440 + 3840 + 160 + 2 = 65442_(10)$

数値を10進数システムから別のシステムに変換するための規則

  • から数値を変換するには 10進法バイナリにするには、$ 1 $以下の余りができるまで、$ 2 $で順次除算する必要があります。 2進法の数値は、除算の最後の結果と除算の余りのシーケンスとして逆の順序で表されます。

例4

数値$ 22_(10)$は2進表記に変換されます。

解決:

図4。

$22_{10} = 10110_2$

  • 数値を10進数から8進数に変換するには、$ 7以下の余りができるまで、$ 8で順次除算する必要があります。 8進数は、最後の除算結果と残りの除算の桁のシーケンスとして逆の順序で表されます。

例5

数値$ 571_(10)$は8進表記に変換されます。

解決:

図5。

$571_{10} = 1073_8$

  • 数値を10進数から16進数に変換するには、15ドル以下の余りができるまで、16ドルで順次除算する必要があります。 16進法の数値は、除算の最後の結果と除算の余りの数字のシーケンスとして逆の順序で表されます。

例6

数値$ 7467_(10)$は16進表記に変換されます。

解決:

図6。

$ 7467_(10)= 1D2B_(16)$

    正しい小数を10進数システムから非10進数システムに変換するには、変換された数値の小数部分に、変換が必要なシステムの基数を順次乗算する必要があります。 新システムの分数は、最初から作品全体の形で提示されます。

    例:8進数の$ 0.3125 _((10))$は、$ 0.24 _((8))$のようになります。

    この場合、非10進数システムの無限(周期的)分数が最終的な10進分数に対応する可能性があるときに問題が発生する可能性があります。 この場合、新しいシステムで表示される分数の桁数は、必要な精度によって異なります。 また、整数は整数のままであり、通常の分数はどの記数法でも分数のままであることに注意してください。

2進数システムから別のシステムに数値を変換するためのルール

  • 数値を2進数システムから8進数に変換するには、最下位ビットから始めて、必要に応じて上位トライアドにゼロを追加し、各トライアドを対応する8進数に置き換えて、トライアド(3進数)に分割する必要があります。表4に。

図7.表4

例7

数値$ 1001011_2 $を8進表記に変換します。

解決..。 表4を使用して、数値を2進数から8進数に変換してみましょう。

$001 001 011_2 = 113_8$

  • 2進数システムから16進数に数値を変換するには、最下位桁から始めて4進数(4桁)に分割し、必要に応じて上位4進数にゼロを追加してから、各4進数を対応する8進数に置き換えます。表4。

ある記数法から別の記数法に数値を変換することは、機械演算の重要な部分です。 翻訳の基本的なルールを考えてみましょう。

1. 2進数を10進数に変換するには、数値の桁とそれに対応する2の累乗の積で構成される多項式の形式で記述し、10進数の規則に従って計算する必要があります。算術:

翻訳するときは、2の累乗の表を使用すると便利です。

表4.2の累乗

n(度)

2. 8進数を10進数に変換するには、数値の桁とそれに対応する数値8の累乗の積で構成される多項式の形式で記述し、10進数の規則に従って計算する必要があります。算術:

翻訳するときは、8の累乗の表を使用すると便利です。

表5.8の累乗

n(度)

例。 数値を10進表記に変換します。

3. 16進数を10進数に変換するには、数値の桁とそれに対応する数値16の累乗の積で構成される多項式の形式で記述し、10進数の算術規則に従って計算する必要があります。 :

翻訳するときは、16の累乗の表を使用すると便利です。

表6.16の累乗

n(度)

例。 数値を10進表記に変換します。

4. 10進数を2進数に変換するには、1以下の余りができるまで、2で順次除算する必要があります。2進数の数値は、最後の除算結果と余りのシーケンスとして書き込まれます。逆の順序で分割の。

例。 数値を2進数システムに変換します。

5. 10進数を8進数に変換するには、余りが7以下になるまで、8で順次除算する必要があります。8進数の数値は、最後の除算結果の桁のシーケンスとして書き込まれ、除算の残りは逆の順序で。

6. 10進数を16進法に変換するには、余りが15以下になるまで、16で順次除算する必要があります。16進法の数値は、最後の除算結果の桁のシーケンスとして書き込まれ、除算の残りは逆の順序で。


例。 数値を16進表記に変換します。

7.数値を2進数から8進数に変換するには、最下位ビットから始めて、必要に応じて最上位の3進数にゼロを追加し、各3進数を対応する8進数に置き換えて、3進数(3進数)に分割する必要があります。 (表3)。

例。 数値を8進数システムに変換します。

8.数値を2進数から16進数に変換するには、最下位桁から始めて、必要に応じて上位4進数にゼロを追加し、各4進数を対応する8進数に置き換えて、4進数(4桁)に分割する必要があります(表3)。

手順

関連動画

私たちが毎日使用しているカウントシステムは、0から9までの10桁です。 したがって、10進数と呼ばれます。 ただし、技術計算、特にコンピュータに関連する計算では、その他 システム特に2進数と16進数。 したがって、翻訳できる必要があります 数字 1つから システム推測航法。

必要になるだろう

  • -一枚の紙;
  • -鉛筆またはペン;
  • -電卓。

手順

バイナリシステムは最も単純です。 0と1の2桁しかありません。 2進数の各桁 数字、最後から始めて、2の累乗に対応します。 2は1に等しく、最初は2に等しく、2番目は4に等しく、3番目は8に等しいというように続きます。

2進数の1010110が与えられたとします。その中の1つは、最後から2番目、3番目、5番目、7番目の場所にあります。 したがって、10進法では、この数値は2 ^ 1 + 2 ^ 2 + 2 ^ 4 + 2 ^ 6 = 2 + 4 + 16 + 64 = 86です。

逆問題-10進数 数字システム。 番号57があるとします。そのレコードを取得するには、この番号を2で順番に除算し、除算の余りを書き込む必要があります。 2進数は最後から最初まで作成されます。
最初のステップはあなたに与えるでしょう 最後の桁:57/2 = 28(余り1)。
次に、最後から2番目を取得します:28/2 = 14(剰余0)。
さらなるステップ:14/2 = 7(残り0);
7/2 = 3(余り1);
3/2 = 1(余り1);
1/2 = 0(余り1)。
除算がゼロであるため、これが最後のステップです。 その結果、2進数111001が得られました。
答えの正しさを確認してください:111001 = 2 ^ 0 + 2 ^ 3 + 2 ^ 4 + 2 ^ 5 = 1 + 8 + 16 + 32 = 57。

2つ目は、コンピュータサイエンスで使用され、16進数です。 10個ではなく16個の数字があります。 新しい規則を避けるために、16進数の最初の10桁 システムは通常の数字で示され、残りの6つはラテン文字で:A、B、C、D、E、F。対応する10進表記 数字 mは10から15です。混乱を避けるために、16進法で書かれた数字の前には、#記号または0x記号が付いています。

10進数からの逆変換 システム 16進数では、2進数と同じ残余法で実行されます。 たとえば、数値10000を考えます。それを16で順次除算し、余りを書き込むと、次のようになります。
10000/16 = 625(余り0)。
625/16 = 39(余り1)。
39/16 = 2(余り7)。
2/16 = 0(余り2)。
計算結果は16進数2710になります。
答えが正しいかどうかを確認してください:#2710 = 1 *(16 ^ 1)+ 7 *(16 ^ 2)+ 2 *(16 ^ 3)= 16 + 1792 + 8192 = 10000。

移行 数字 16進数から システムバイナリへの変換ははるかに簡単です。 数16は2です:16 = 2 ^ 4。 したがって、各16進数は4桁の2進数として書き込むことができます。 2進数が4桁未満の場合は、先行ゼロを追加します。
たとえば、#1F7E =(0001)(1111)(0111)(1110)= 1111101111110。
答えが正しいかどうかを確認してください:両方 数字 8062に等しい10進表記で。

変換するには、2進数を最後から4桁のグループに分割し、そのような各グループを16進数に置き換える必要があります。
たとえば、11000110101001は(0011)(0001)(1010)(1001)になり、16進表記で#31A9が得られます。 答えの正しさは、10進表記への翻訳によって確認されます:両方 数字 12713に等しい。

ヒント5:数値を2進数に変換する方法

記号の使用が制限されているため、バイナリシステムはコンピュータやその他の場所での使用に最も便利です。 デジタルデバイス..。 シンボルは1と0の2つしかないので、これは システムレジスターの作業で使用されます。

手順

バイナリは定位置です。つまり、 数値の各桁の位置は特定の桁に対応し、対応する累乗の2に等しくなります。 次数はゼロから始まり、右から左に移動するにつれて増加します。 例えば、 番号 101は1 * 2 ^ 0 + 0 * 2 ^ 1 + 1 * 2 ^ 2 = 5に等しい。

10進数から2進数を検討する システム 2で割ることによって。 番号 25をコードに代入し、残りがゼロになるまで2で除算する必要があります。除算の各ステップで取得された剰余は、右から左に文字列に書き込まれます。最後の剰余桁を書き込んだ後、これが最後になります。

トピックの続き:
デバイス

太陽の自由光線を家や他の施設に電力を供給するために使用できるエネルギーに効率的に変換することは、多くの緑の謝罪者の大切な夢です...