デジタル回路-ベース変換
前の章では、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です。