デジタル回路-ベース変換

前の章では、4つの著名な数体系を見てきました。この章では、同等の値を見つけるために、ある記数法から別の記数法に数値を変換してみましょう。

10進数から他の基数への変換

10進数に整数部分と小数部分の両方が含まれている場合は、10進数の両方の部分を個別に他の底に変換します。10進数を任意の基数「r」の同等の数に変換するには、次の手順に従います。

  • 行う division 10進数の整数部分と successive quotients底が「r」で、商がゼロになるまで余りを書き留めます。剰余を逆の順序で検討して、等しい数のベース 'r'の整数部分を取得します。つまり、最初と最後の余りは、それぞれ最下位桁と最上位桁を示します。

  • 行う multiplication 10進数の小数部分の successive fractionsベース「r」を使用して、結果がゼロになるか、必要な数の同等の桁が得られるまで、キャリーを書き留めます。同等の数の塩基「r」の小数部分を取得するために、通常のキャリーシーケンスを検討してください。

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

10進数を同等の2進数に変換しながら、次の2種類の演算が実行されます。

  • 2を底とする整数部分と連続する商の除算。
  • 小数部と連続する小数の基数2による乗算。

Example

考えます decimal number 58.25。ここで、整数部分は58で、小数部分は0.25です。

Step 1 −58の除算と基数2の連続する商。

操作 残り
58/2 29 0 (LSB)
29/2 14 1
14/2 7 0
7/2 3 1
3/2 1 1
1/2 0 1(MSB)

⇒(58)10 =(111010)2

したがって、 integer part 同等の2進数の 111010

Step 2 −基数2による0.25および連続する分数の乗算。

操作 結果 運ぶ
0.25 x 2 0.5 0
0.5 x 2 1.0 1
- 0.0 -

⇒(.25)10 =(。01)2

したがって、 fractional part 同等の2進数の .01

⇒(58.25)10 =(111010.01)2

したがって、 binary equivalent 10進数58.25のは111010.01です。

10進数から8進数への変換

10進数を同等の8進数に変換しながら、次の2種類の演算が実行されます。

  • 整数部分と基数8の連続する商の除算。

  • 小数部とそれに続く小数の基数8による乗算。

Example

考えます decimal number 58.25。ここで、整数部分は58で、小数部分は0.25です。

Step 1 −58の除算と基数8の連続する商。

操作 残り
58/8 7 2
7/8 0 7

⇒(58)10 =(72)8

したがって、 integer part 同等の8進数の 72

Step 2 −基数8による0.25および連続する分数の乗算。

操作 結果 運ぶ
0.25 x 8 2.00 2
- 0.00 -

⇒(.25)10 =(。2)8

したがって、 fractional part 同等の8進数の.2

⇒(58.25)10 =(72.2)8

したがって、 octal equivalent 10進数の58.25は72.2です。

10進数から16進数への変換-10進数の変換

10進数を同等の16進数に変換しながら、次の2種類の演算が実行されます。

  • 整数部分と基数16の連続する商の除算。
  • 小数部とそれに続く16進数の分数の乗算。

Example

考えます decimal number 58.25。ここで、整数部分は58、小数部分は0.25です。

Step 1 −58の除算と基数16の連続する商。

操作 残り
58/16 3 10 = A
3/16 0 3

⇒(58)10 =(3A)16

したがって、 integer part 同等の16進数の10進数は3Aです。

Step 2 −基数16による0.25および連続する分数の乗算。

操作 結果 運ぶ
0.25 x 16 4.00 4
- 0.00 -

⇒(.25)10 =(。4)16

したがって、 fractional part 同等の16進数の10進数は.4です。

⇒(58.25)10 = (3A.4)16

したがって、 Hexa-decimal equivalent 10進数58.25のは3A.4です。

2進数から他の基数への変換

数値を2進数から10進数に変換するプロセスは、2進数を他の基数に変換するプロセスとは異なります。ここで、2進数から10進数、8進数、16進数への変換について1つずつ説明します。

2進化から10進への変換

2進数を同等の10進数に変換するには、最初に2進数のビットにそれぞれの位置の重みを掛けてから、それらすべての積を加算します。

Example

考えます binary number 1101.11

Mathematically、次のように書くことができます

(1101.11)2 =(1×2 3)+(1×2 2)+(0×2 1)+(1×2 0)+(1×2 -1)+

(1×2 -2

⇒(1101.11)2 = 8 + 4 + 0 + 1 + 0.5 + 0.25 = 13.75

⇒(1101.11)2 =(13.75)10

したがって、 decimal equivalent 2進数1101.11のは13.75です。

2進数から8進数への変換

2進数と8進数のシステムの基数はそれぞれ2と8であることがわかっています。2 3 = 8であるため、3ビットの2進数は1つの8進数に相当します。

2進数を同等の8進数に変換するには、次の2つの手順に従います。

  • バイナリポイントから開始し、バイナリポイントの両側に3ビットのグループを作成します。3ビットのグループを作成するときに1ビットまたは2ビットが少ない場合は、極端な側に必要な数のゼロを含めます。

  • 3ビットの各グループに対応する8進数を書き込みます。

Example

考えます binary number 101110.01101

Step 1 −バイナリポイントの両側に3ビットのグループを作成します。

101 110.011 01

ここで、バイナリポイントの右側では、最後のグループは2ビットしかありません。したがって、3ビットのグループにするために、極端な側に1つのゼロを含めます。

⇒101110.011010

Step 2 −3ビットの各グループに対応する8進数を書き込みます。

⇒(101 110.011 010)2 =(56.32)8

したがって、 octal equivalent 2進数の101110.01101は56.32です。

2進数から16進数への変換-10進数の変換

2進数と16進数のシステムの基数はそれぞれ2と16であることがわかっています。2 4 = 16であるため、4ビットの2進数は1つの16進数に相当します。

2進数を同等の16進数に変換するには、次の2つの手順に従います。

  • バイナリポイントから開始し、バイナリポイントの両側に4ビットのグループを作成します。4ビットのグループを作成しているときに一部のビットが少ない場合は、極端な側に必要な数のゼロを含めます。

  • 4ビットの各グループに対応する16進数を書き込みます。

Example

考えます binary number 101110.01101

Step 1 −バイナリポイントの両側に4ビットのグループを作成します。

10 1110.0110 1

ここで、最初のグループは2ビットしかありません。したがって、4ビットのグループにするために、極端な側に2つのゼロを含めます。同様に、最後のグループも4ビットのグループにするために、極端な側に3つのゼロを含めます。

⇒00101110.01101000

Step 2 −4ビットの各グループに対応する16進数を書き込みます。

⇒(0010 1110.0110 1000)2 =(2E.68)16

したがって、 Hexa-decimal equivalent 2進数の101110.01101は(2E.68)です。

8進数から他の基数への変換

数値を8進数から10進数に変換するプロセスは、8進数を他の基数に変換するプロセスとは異なります。ここで、8進数から10進数、2進数、16進数への変換について1つずつ説明します。

8進数から10進数への変換

8進数を同等の10進数に変換するには、最初に8進数の桁にそれぞれの位置の重みを掛けてから、それらすべての積を加算します。

Example

考えます octal number 145.23

Mathematically、次のように書くことができます

(145.23)8 =(1×8 2)+(4×8 1)+(5×8 0)+(2×8 -1)+(3×8 -2

⇒(145.23)8 = 64 + 32 + 5 + 0.25 + 0.05 = 101.3

⇒(145.23)8 =(101.3)10

したがって、 decimal equivalent 8進数の145.23は101.3です。

8進数から2進数への変換

8進数を同等の2進数に変換するプロセスは、2進数から8進数に変換するプロセスとは正反対です。各8進数を3ビットで表すことにより、同等の2進数が得られます。

Example

考えます octal number 145.23

各8進数を3ビットで表します。

(145.23)8 =(001 100 101.010 011)2

極端な側にあるゼロを削除しても、値は変化しません。

⇒(145.23)8 =(1100101.010011)2

したがって、 binary equivalent 8進数145.23のは1100101.010011です。

8進数から16進数への変換-10進数の変換

8進数を同等の16進数に変換するには、次の2つの手順に従います。

  • 8進数を同等の2進数に変換します。
  • 上記の2進数を同等の16進数に変換します。

Example

考えます octal number 145.23

前の例では、8進数145.23に相当する2進数を1100101.010011として取得しました。

2進数から16進数への変換の手順に従うことにより、次のようになります。

(1100101.010011)2 =(65.4C)16

⇒(145.23)8 =(65.4C)16

したがって、 Hexa-decimal equivalent進数145.23の65.4であるC

16進数-10進数から他の基数への変換

数値を16進数から10進数に変換するプロセスは、16進数を他の基数に変換するプロセスとは異なります。ここで、16進数から10進数、2進数、8進数への変換について1つずつ説明します。

16進数から10進数への変換

16進数を同等の10進数に変換するには、最初に16進数の桁にそれぞれの位置の重みを掛けてから、それらすべての積を加算します。

Example

考えます Hexa-decimal number 1A5.2

Mathematically、次のように書くことができます

(1A5.2)16 =(1×16 2)+(10×16 1)+(5×16 0)+(2×16 -1

⇒(1A5.2)16 = 256 + 160 + 5 + 0.125 = 421.125

⇒(1A5.2)16 =(421.125)10

したがって、 decimal equivalent 16進数の10進数1A5.2は421.125です。

16進数から2進数への変換

16進数を同等の2進数に変換するプロセスは、2進数から16進数に変換するプロセスとは正反対です。各16進数を4ビットで表すことにより、同等の2進数が得られます。

Example

考えます Hexa-decimal number 65.4C

各16進数を4ビットで表します。

(65.4C)6 =(0110 0101.0100 1100)2

極端な2つの側面にあるゼロを削除しても、値は変化しません。

⇒(65.4C)16 =(1100101.010011)2

したがって、 binary equivalent 16進数の10進数65.4Cは1100101.010011です。

16進数から10進数への変換

16進数を同等の8進数に変換するには、次の2つの手順に従います。

  • 16進数を同等の2進数に変換します。
  • 上記の2進数を同等の8進数に変換します。

Example

考えます Hexa-decimal number 65.4C

前の例では、16進数の65.4Cに相当する2進数を1100101.010011として取得しました。

2進数から8進数への変換の手順に従うことにより、次のようになります。

(1100101.010011)2 =(145.23)8

⇒(65.4C)16 =(145.23)

したがって、 octal equivalentヘキサ進数65.4 Cは145.23です。