ある記数法から別の記数法に転送します。 ある記数法から別の記数法にオンラインで番号を変換する

備考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進数から2進数に変換するには、$ 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進法計算。 この場合、新しいシステムで表示される分数の桁数は、必要な精度によって異なります。 また、整数は整数のままであり、通常の分数はどの記数法でも分数のままであることに注意してください。

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。

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

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

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

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

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

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

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

例2.12。翻訳 10進数 173 10から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

数値を10進数から2進数にすばやく変換するには、「2の累乗」の数値をよく知っている必要があります。 たとえば、2 10 = 1024などです。 これにより、翻訳のいくつかの例をわずか数秒で解決できます。 これらのタスクの1つは デモUSE2012のタスクA1..。 もちろん、長い間、面倒なことに、数値を「2」で割ることはできます。 ただし、別の方法で決定することをお勧めします。これにより、試験の貴重な時間を節約できます。

方法はとても簡単です。 その本質は次のとおりです。 10進法から変換される数が「2の累乗」の数に等しい場合、2進法のこの数には、累乗に等しいゼロの数が含まれます。 これらのゼロの前に「1」を追加します。

  • 10進法から2を変換してみましょう。 2 = 21。 したがって、2進法では、数値には1つのゼロが含まれます。 前に「1」を付けて102を取得します。
  • 10進法から4を変換します。 4 = 22。 したがって、2進法では、数値には2つのゼロが含まれます。 前に「1」を付けて1002を取得します。
  • 10進法の8を変換します。 8 = 23。 したがって、2進法では、数値には3つのゼロが含まれます。 前に「1」を付けて10002を取得します。


他の数値についても同様に「2の累乗」。

変換される数が「2の累乗」の数より1少ない場合、バイナリシステムでは、この数は1のみで構成され、その数は累乗に等しくなります。

  • 10進法から3を変換します。 3 = 2 2-1。 したがって、2進法では、数には2つが含まれます。 112を取得します。
  • 10進法から7を変換します。 7 = 2 3-1。 したがって、2進法では、数には3つが含まれます。 1112を取得します。

図中、四角は バイナリ表現数字、左側はピンク-小数。


変換は、他の数値「2の1乗」でも同様です。

0から8への数値の変換は、迅速に、または除算によって行うことができるか、あるいは単にバイナリシステムでのそれらの表現を心から知ることができることは明らかです。 あなたが原理を理解するために私はこれらの例を挙げました この方法そして、それを使用して、より「印象的な数字」を翻訳しました。たとえば、127、128、255、256、511、512などの数字を翻訳しました。

このような問題は、「2の累乗」の数と等しくないがそれに近い数を変換する必要がある場合に発生する可能性があります。 「2の累乗」という数値よりも多い場合も少ない場合もあります。 換算された数と「2の累乗」の数の差は小さいはずです。 たとえば、最大3です。バイナリシステムでの0から3までの数値の表現は、変換せずに知っておく必要があります。

数値が大きい場合は、次のように解きます。

まず、バイナリシステムで数値「2の累乗」を変換します。 そして、それに「2の累乗」という数と翻訳される数の差を追加します。

たとえば、10進法から19を変換してみましょう。 それ より多くの数「2の累乗」を3で。

16=2 4 . 16 10 =10000 2 .

3 10 =11 2 .

19 10 =10000 2 +11 2 =10011 2 .

数値が「2の累乗」よりも小さい場合は、「2の累乗-1」の数値を使用する方が便利です。 私たちはこのように解決します:

まず、バイナリシステムで数値「2を1の累乗」に変換します。 次に、「2の1乗」という数値と変換される数値の差を減算します。

たとえば、10進法から29を変換してみましょう。 「2の1乗」の数より2倍多い。29= 31-2。

31 10 =11111 2 .

2 10 =10 2 .

29 10 =11111 2 -10 2 =11101 2

換算された数値と「2の2乗」の数値の差が3を超える場合は、数値をコンポーネントに分割し、各部分を2進法に変換して加算することができます。

たとえば、数値528を10進法から変換します。 528 = 512 +16。 512と16を別々に翻訳します。
512=2 9 . 512 10 =1000000000 2 .
16=2 4 . 16 10 =10000 2 .
次に、それを列に追加します。

結果はすでに受け取られています!

数体系

位置番号システムと非位置番号システムがあります。 私たちが日常生活で使用しているアラビア数字システムは定位置ですが、ローマ数字システムはそうではありません。 位置記数法では、数値の位置によって数値の値が一意に決まります。 例として10進数6372を使用してこれを見てみましょう。 この数をゼロから始めて右から左に列挙してみましょう。

次に、番号6372は次のように表すことができます。

6372 = 6000 + 300 + 70 + 2 = 6・10 3 + 3・10 2 + 7・10 1 + 2・100。

数10は、記数法を定義します(この場合は10です)。 与えられた数の位置の値は度として扱われます。

実際の10進数1287.923について考えてみます。 小数点から左と右への数字のゼロ位置から始めて番号を付けましょう:

その場合、番号1287.923は次のように表すことができます。

1287.923 = 1000 + 200 + 80 + 7 + 0.9 + 0.02 + 0.003 = 1・10 3 + 2・10 2 + 8・10 1 + 7・10 0 + 9・10 -1 + 2・10 -2 + 3・10-3。

一般に、式は次のように表すことができます。

C n NS n + C n-1 NS n-1 + ... + C 1 NS 1 + C 0 s 0 + D -1 s -1 + D -2 s -2 + ... + D -k s -k

ここで、Цnは位置が整数です。 NS、Д-k-位置の小数(-k)、 NS-記数法。

数体系についてのいくつかの単語。10進数体系の数は、8進数体系の多くの桁(0、1、2、3、4、5、6、7、8、9)で構成されています。数字(0,1、2,3,4,5,6,7)、2進数システムの場合-数字のセット(0,1)から、16進数システムの場合-数字のセット(0、 1,2,3,4,5,6、7,8,9、A、B、C、D、E、F)、ここでA、B、C、D、E、Fは番号10、11、 12,13,14,15。の数字 さまざまなシステム計算。

表1
表記
10 2 8 16
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 NS
11 1011 13 NS
12 1100 14 NS
13 1101 15 NS
14 1110 16 E
15 1111 17 NS

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

ある記数法から別の記数法に数値を変換する最も簡単な方法は、最初にその記数法を10進法に変換し、次に10進法から必要な記数法に変換することです。

任意の記数法から10進法への数値の変換

式(1)を使用すると、任意の記数法から10進法に数値を変換できます。

1. 数値1011101.001を2進数システム(SS)から10進数SSに変換します。 解決:

1 2 6 +0 2 5 + 1 2 4 + 1 ・2 3 + 1 ・2 2 + 0 ・2 1 + 1 2 0 + 0 2 -1 + 0 2 -2 + 1 2 -3 = 64 + 16 + 8 + 4 + 1 + 1/8 = 93.125

2. 1011101.001を8進数システム(SS)から10進数SSに変換します。 解決:

3 ..。 数値AB572.CDFを16進数の基数から10進数のSSに変換します。 解決:

ここに NS-10に置き換えられました。 NS-11時 NS-12時 NS-15まで。

10進法から別の記数法への数値の変換

数値を10進法から別の記数法に変換するには、数値の整数部分と小数部分を別々に変換する必要があります。

数値の整数部分は、10進数のSSから別の数値システムに変換されます-数値の整数部分を数値システムの基数で順次除算します(2進数のSSの場合は2、8進SSの場合は8、16-aryの場合-16までなど))残差全体が得られるまで、ベースCC未満。

4 ..。 数値159を10進数のSSから2進数のSSに変換してみましょう。

159 2
158 79 2
1 78 39 2
1 38 19 2
1 18 9 2
1 8 4 2
1 4 2 2
0 2 1
0

図からわかるように。 1、2で割ったときの数159は商79と余り1を与えます。さらに、2で割ったときの数79は商39と余り1を与えます。 その結果、除算の残りの部分(右から左)から数値を作成すると、バイナリSSで数値が得られます。 10011111 ..。 したがって、次のように書くことができます。

159 10 =10011111 2 .

5 ..。 数値615を10進数のSSから8進数のSSに変換してみましょう。

615 8
608 76 8
7 72 9 8
4 8 1
1

数値を10進数のSSから8進数のSSに変換するときは、余りが8未満になるまで、数値を8で順番に除算する必要があります。その結果、除算の余りから(右から左に)数値を作成します。 8進数のSSで数値を取得します。 1147 (図2を参照)。 したがって、次のように書くことができます。

615 10 =1147 8 .

6 ..。 数値19673を10進数から16進数のSSに変換します。

19673 16
19664 1229 16
9 1216 76 16
13 64 4
12

図3からわかるように、19673を16で除算すると、余りは4、12、13、9になります。16進数のシステムでは、12はCに対応し、13はDに対応します。 16進数は4CD9です。

正しい小数部(整数部分がゼロの実数)をベースsに変換するには、小数部で純粋なゼロが得られるまで、この数にsを順次乗算する必要があります。そうしないと、必要な桁数が得られます。 乗算の結果が整数部分のゼロ以外の数値になる場合は、この整数部分を無視します(結果に順番に追加されます)。

上記を例を挙げて考えてみましょう。

7 ..。 数値0.214を10進数から2進数のSSに変換してみましょう。

0.214
NS 2
0 0.428
NS 2
0 0.856
NS 2
1 0.712
NS 2
1 0.424
NS 2
0 0.848
NS 2
1 0.696
NS 2
1 0.392

図4からわかるように、数値0.214に2を順次乗算します。乗算の結果、整数部分を持つ非ゼロの数値になる場合、整数部分は別々に(数値の左側に)書き込まれ、数値はゼロ整数部分で書かれています。 乗算時に整数部分がゼロの数値が得られた場合、その左側にゼロが書き込まれます。 乗算プロセスは、小数部で純粋なゼロが取得されるか、必要な桁数が取得されるまで続きます。 上から下に太字の数字(図4)を書き留めると、2進数システムで必要な数字0が得られます。 0011011 .

したがって、次のように書くことができます。

0.214 10 =0.0011011 2 .

8 ..。 数値0.125を10進数システムから2進数SSに変換してみましょう。

0.125
NS 2
0 0.25
NS 2
0 0.5
NS 2
1 0.0

数値0.125を10進数のSSから2進数に変換するには、この数値に2を掛けます。第3段階では、0になります。したがって、次の結果が得られました。

0.125 10 =0.001 2 .

9 ..。 数値0.214を10進数から16進数のSSに変換してみましょう。

0.214
NS 16
3 0.424
NS 16
6 0.784
NS 16
12 0.544
NS 16
8 0.704
NS 16
11 0.264
NS 16
4 0.224

例4と5に続いて、数値3、6、12、8、11、4を取得します。ただし、16進数のSSでは、数値12と11は数値CとBに対応します。したがって、次のようになります。

0.214 10 = 0.36C8B416。

10 ..。 DecimalをOctalSSに変換します。

0.512
NS 8
4 0.096
NS 8
0 0.768
NS 8
6 0.144
NS 8
1 0.152
NS 8
1 0.216
NS 8
1 0.728

NS:

0.512 10 =0.406111 8 .

11 ..。 数値159.125を10進数から2進数のSSに変換します。 これを行うには、数値の整数部分(例4)と数値の小数部分(例8)を別々に変換します。 さらに、これらの結果を組み合わせると、次のようになります。

159.125 10 =10011111.001 2 .

12 ..。 数値19673.214を10進数から16進数のSSに変換します。 これを行うには、数値の整数部分(例6)と数値の小数部分(例9)を別々に変換します。 さらに、これらの結果を組み合わせると、次のようになります。

レッスンの目的:

  • 記数法で研究された資料を繰り返します。
  • 数値を10進法から他の位置記数法に、またはその逆に変換する方法を学びます。
  • あるシステムから別のシステムに番号を転送する原則を習得する。
  • 論理的思考を発達させる。

授業中

レッスンの始めに、宿題の簡単なレビューとチェック。

コンピュータのメモリに表示される数値情報はどのような形式ですか?

番号システムは何に使用されますか?

どんな数体系を知っていますか? あなたの例を挙げてください。

位置システムは非位置システムとどのように異なりますか?

このレッスンの目的は、数値を10進法から他の位置記数法に、またはその逆に変換する方法を学習することです。 しかし、最初に、私たちはあなたができる方法を見ていきます

非負の整数を表します:

位置システムでは、整数を記録する値は、次の規則に従って決定されます。an a n-1 a n-2 ... a 1 a 0-数値Aを記録し、i-数字を記録します。

ここで、pは1より大きい整数であり、記数法の基数と呼ばれます。

そのため、与えられたpに対して、任意の非負の整数を式(1)で記述でき、さらに、独自の方法で次のように記述できます。 数値異なる数字は、0からp-1の範囲に属する異なる整数でなければなりません。

1)10進法

数字:0、1、2、3、4、5、6、7、8、9

番号5735 = 5 10 3 + 7 10 2 + 3 10 1 + 8 10 0

2)三元システム

数字:0、1、2

番号2013 = 2 3 2 + 0 3 1 + 1 3 0

注:数値表記の下付き文字は、数値が書き込まれる記数法の基数を示します。 10進法の場合、インデックスは省略できます。

負の数と分数の表現:

すべての位置システムで、記号「-」は、10進法と同様に負の数を書き込むために使用されます。 数値の整数部分と小数部分を区切るには、コンマが使用されます。 数値Aのレコードanan-1 a n-2 ... a 1 a 0、a -1 a -2 ... a m-2 a m-1 amの値は、次の式によって決定されます。式(1)の一般化です:

75.6 = 7・10 1 + 5・10 0 + 6・10 -1

–2.314 5 =-(2・5 0 + 3・5 –1 + 1・5 –2 + 4・5 –3)

数値を任意の記数法から10進数に変換する:

ある記数法から別の記数法に数を変換する場合、数の量的値は変化せず、数の名前を変換する場合と同じように、数の書き方だけが変化することを理解する必要があります。ロシア語から英語へ。

数値を任意の記数法から10進数に変換するには、整数の場合は式(1)を、分数の場合は式(2)を使用して直接計算します。

数値を10進数から任意の数値に変換します。

数値を10進法から底p系に変換するということは、式(2)で係数を見つけることを意味します。 単純な選択でこれを行うのは簡単な場合があります。 たとえば、23.5という数値を8進数に変換するとします。 23.5 = 16 + 7 + 0.5 = 2・8 + 7 + 4/8 = 2・8 1 + 7・8 0 + 4・8 -1 = 27.48であることが簡単にわかります。 答えが必ずしも明白であるとは限らないことは明らかです。 一般的なケースでは、数値の整数部分と小数部分を別々に変換する方法が使用されます。

整数を変換するには、次のアルゴリズムが使用されます(式(1)に基づいて取得)。

1.数をpで割った後、商と余りを求めます。 余りは、新しい記数法で記録された番号の次の桁ai(j = 0,1,2 ...)になります。

2.商がゼロの場合、数値の変換は完了しています。それ以外の場合は、商に条項1を適用します。

注1.番号レコードの数字aiは、右から左に番号が付けられています。

注2.p> 10の場合、10以上の数値を持つ数値の指定を入力する必要があります。

165番を9進法に変換します。

165:7 = 23(余り4)=> a 0 = 4

23:7 = 3(余り2)=> a 1 = 2

3:7 = 0(余り3)=> a 2 = 3

結果を書きましょう:a 2 a 1 a 0、つまり 3247。

式(1)を確認した後、翻訳が正しいことを確認します。

3247 = 3 7 2 + 2 7 1 + 4 7 0 = 3 49 + 2 7 + 4 = 147 + 14 + 4 = 165。

数値の小数部分を変換するには、式(2)に基づいて取得されたアルゴリズムが使用されます。

1.数値の小数部分にpを掛けます。

2.結果の整数部分は、新しい記数法で数値を記録する次の桁am(m = –1、–2、–3…)になります。 結果の小数部分がゼロの場合、数値の変換は完了しています。それ以外の場合は、ポイント1を適用します。

注1.数値レコードの数字amは、mの絶対値の昇順で左から右に配置されます。

注2.通常、の小数桁数 新規エントリー事前に数に限りがあります。 これにより、指定された精度で近似変換を実行できます。 無限分数の場合、この制限によりアルゴリズムの有限性が保証されます。

2進数0.625を変換します。

0.625 2 = 1.25(1の全体)=> a -1 = 1

0.25 2 = 0.5(整数部0)=> a- 2 = 0

0.5 2 = 1.00(パート1全体)=> a- 3 = 1

したがって、0.62510 = 0.1012

式(2)を確認した後、翻訳が正しいことを確認します。

0.1012 = 1 2 -1 + 0 2- 2 + 1 2 -3 = 1/2 + 1/8 = 0.5 + 0.125 = 0.625。

数値0.165を4進数に変換します。4進数は4桁に制限されています。

0.165 4 = 0.66(整数部0)=> a -1 = 0

0.66 4 = 2.64(2の整数部分)=> a -2 = 2

0.64 4 = 2.56(パート2全体)=> a -3 = 2

0.56 4 = 2.24(2の整数部分)=> a -4 = 2

したがって、0.16510 "0.02224

逆変換を実行して、絶対誤差が4〜4を超えないようにします。

0.02224 = 0 4 -1 + 2 4 -2 + 2 4 -3 + 2 4 -4 = 2/16 + 2/64 + 2/256 = 1/8 + 1/32 + 1/128 = 21/128 = 0.1640625

|0,1640625–0,165| = 0,00094 < 4–4 = 0,00390625

ある任意のシステムから別のシステムへの数値の変換

この場合、最初に数値を10進法に変換してから、10進法から必要な数に変換する必要があります。

複数のベースを持つシステムの数値を変換するには、特別な方法が使用されます。

pとqを2つの数体系の底とします。 p = qnまたはq = pnの場合、これらの数体系を複数の底で呼びます。ここで、nは自然数です。 したがって、たとえば、基数2と8の数体系は、複数の基数を持つ数体系です。

p = qnとすると、基数qの記数法から基数pの記数法に数値を変換する必要があります。 数の記録の整数部分と小数部分を、コンマの左右に連続して書き込まれるn桁のグループに分割します。 数値の整数部分の記録の桁数がnの倍数でない場合は、対応するゼロの数を左側に追加する必要があります。 数値の小数部分のレコードの桁数がnの倍数でない場合は、右側にゼロが追加されます。 古い記数法の数字のそのような各桁のグループは、新しい記数法の数字の1桁に対応します。

1100001,1112を4倍の記数法で変換します。

ゼロを追加し、数値のペアを選択すると、01100001.11102が得られます。

次に、「数値を任意のシステムから別のシステムに変換する」という項目を使用して、数値の各ペアを個別に変換してみましょう。

したがって、1100001.1112 = 01100001.11102 = 1201.324です。

ここで、ベースqが大きいシステムからベースpが小さいシステムへの転送を実行する必要があるとします。 q = pn。 この場合、古い記数法の番号の1桁は、新しい記数法の番号のn桁に対応します。

例:以前の数値の変換を確認してみましょう。

1201,324 = 1100001,11102=1100001,1112

16進法では、数値が10、11、12、13、14、15の数値があります。 それらを指定するには、ラテンアルファベットの最初の6文字A、B、C、D、E、Fを使用します。

これは、基数10、2、8、および16で記述された0から16までの数値の表です。

10進数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
8進数で 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20
バイナリで 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000
16進数 0 1 2 3 4 5 6 7 8 9 NS NS NS NS E NS 10

16進数を書き込むには、小文字のラテン文字a〜fを使用することもできます。

例:数値110101001010101010100.112を16進数システムに変換してみましょう。

数体系(16 = 2 4)の底の多重度を使用してみましょう。 数値を4でグループ化し、必要な数のゼロを左右に追加してみましょう。

000110101001010101010100,1100 2

そして、表を参照すると、次のようになります。1A9554、C 16

結論:

どちらの記数法が数字を書くのに適しているかは、利便性と伝統の問題です。 技術的な観点からは、コンピュータでバイナリシステムを使用すると便利です。これは、0と1の2桁のみを使用して数値を記録するためです。これは、「信号なし」と「信号なし」の2つの簡単に区別できる状態で表すことができます。信号」。

一方で、10進数よりも長く、繰り返し桁が多いため、2進数を扱うのは不便です。 したがって、数値の機械表現を操作する必要がある場合は、8進数または16進数のシステムを使用してください。 これらのシステムの基数は2の整数乗であるため、数値はこれらのシステムから2進数に、またはその逆に簡単に変換できます。

自宅でタスクを書き留めます。

a)家族全員の生年月日をさまざまな番号体系で記録します。

b)数値を2進数から8進数および16進数に変換し、逆変換を行って結果を確認します。

a)1001111110111.011 2;

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

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