(0) 10進数の整数を2進数に変換する方法
-
十進数の13を2進数に直します。 まず13を2で割って商と余りを求めます。 商が6で余りが 1 です。 そこで下から 1 桁目の数は 1 であることが解ります。 次に6を2で割って商と余りを求めます。 商が3で余りが0です。 そこで下から2桁目の数は0であることがわかります。 次に3を2で割って商と余りを求めます。 商が 1 で余りが 1 です。 そこで下から3桁目の数は 1 であることがわかります。 次に 1 を2で割って商と余りを求めます。 商が0で余りが 1 です。 そこで下から4桁目の数は1であることが判ります。 したがって、 2進数では 1101 です。 確かめてみましょう。

-
10進数の小数部分を2進数に変換するには、2をかけては整数部分を引き、 またそれに2をかけては整数部分を引き、 ・ ・ ・ ・ というふうにします。
【 例 題 】
-
10進数の 0.35 を2進数に変換しなさい。
-
0.35 × 2 = 0.7
0.7 − 0 = 0.7
0.7 × 2 = 1.4
1.4 − 1 = 0.4
0.4 × 2 = 0.8
0.8 − 0 = 0.8
0.8 × 2 = 1.6
1.6 − 1 = 0.6
0.6 × 2 = 1.2
1.2 − 1 = 0.2
0.2 × 2 = 0.4
0.4 − 0 = 0.4
0.4 × 2 = 0.8
0.8 − 0 = 0.8
0.8 × 2 = 1.6
1.6 − 1 = 0.6
0.6 × 2 = 1.2
1.2 − 1 = 0.2
0.2 × 2 = 0.4
0.4 − 0 = 0.4
0.4 × 2 = 0.8
0.8 − 0 = 0.8
0.8 × 2 = 1.6
1.6 − 1 = 0.6
・
・
・
したがって、 10進数の小数 0.35 を2進数に変換すると、 次のようになります。
0.010110011001100・・・・
では、 上記の2進数を10進数に変換して、 0.35 に戻るかどうか確かめてみましょう。
0.010110011001100・・・・ = 0.010 + 0.000110011001100・・・・
0.01 ( 2進数 ) → (1/2) 2 ( 10進数 ) → 0.25 ( 10進数 )
0.000110011001100・・・・ を10進数に変換すれば a になるものとすると、
0.000110011001100・・・・ ( 2進数 )
→ a ( 10進数 ) = (1/2) 4 + (1/2) 5 + (1/2) 8 + (1/2) 9 + (1/2) 12 + (1/2) 13 + ・ ・ ・ ・
( この式を
と置く )
の辺々に 2 4 をかけて、2 4 a = 1 + (1/2) + (1/2) 4 + (1/2) 5 + (1/2) 8 + (1/2) 9 + (1/2) 12 + (1/2) 13 + ・ ・ ・ ・
( この式を
と置く )
から
を辺々引いて、15 a = 1 + (1/2) =→ 1.5
よって、 a = 0.1
したがって、
0.010110011001100・・・・ ( 2進数 ) → 0.25 + 0.1 ( 10進数 ) =→ 0.35
2進数の小数 0 . a b c d ( a, b, c, d は 0 または 1 )
を10進数に変換すると、
a × 2 −1 + b × 2 −2 + c × 2 −3 + d × 2 −4
-
0.3125 = 0.625 × 1/2
= ( 0.625 + 0 ) × 1/2
= 0.625 × 1/2 + 0 × 1/2
= ( 1.25 × 1/2 ) × 1/2 + 0 × 1/2
= ( ( 0.25 + 1 ) × 1/2 ) × 1/2 + 0 × 1/2
= ( 0.25 × 1/2 + 1 × 1/2 ) × 1/2 + 0 × 1/2
= 0.25 × (1/2) 2 + 1 × (1/2) 2 + 0 × 1/2
= ( 0.5 × 1/2 ) × (1/2) 2 + 1 × (1/2) 2 + 0 × 1/2
= ( ( 0.5 + 0 ) × 1/2 ) × (1/2) 2 + 1 × (1/2) 2 + 0 × 1/2
= ( 0.5 × 1/2 + 0 × 1/2 ) × (1/2) 2 + 1 × (1/2) 2 + 0 × 1/2
= 0.5 × (1/2) 3 + 0 × (1/2) 3 + 1 × (1/2) 2 + 0 × 1/2
= ( 1 × 1/2 ) × (1/2) 3 + 0 × (1/2) 3 + 1 × (1/2) 2 + 0 × 1/2
= 1 × (1/2) 4 + 0 × (1/2) 3 + 1 × (1/2) 2 + 0 × 1/2
したがって、 10進数の小数 0.3125 を2進数に変換すると、 0.0101 になります。
では、 2進数 0.0101 を10進数に変換して、 0.3125 に戻るかどうか確かめてみましょう。
0.0101 ( 2進数 ) → (1/2) 2 + (1/2) 4 ( 10進数 )
=→ 1/4 + 1/16 =→ 5/16 =→ 0.3125
-
次の十進BASIC のプログラムでは 10進数の小数を10進数以下の小数に変換することができます。 ただし、 任意に行うと桁がオーバーフローしてしまいますので、 あらかじめ小数点以下10桁以下の数に変換される10進数のみを取り扱っています。
また、 次のプログラムは10進数の分数を2進数の小数に変換する十進BASIC のプログラムです。
< JavaScript のプログラム >
2進数の小数を10進数に変換した後、再び2進数に変換します。
プログラムの内容:
(4) 応用問題
-
【 問 題 】
-
10進数の 5.875 を2進数にしなさい。
-
5 ÷ 2 = 2 あまり 1
2 ÷ 2 = 1 あまり 0
1 ÷ 2 = 0 あまり 1
したがって、 5 ⇒ 101
0.875 × 2 = 1.75
1.75 − 1 = 0.75
0.75 × 2 = 1.5
1.5 − 1 = 0.5
0.5 × 2 = 1
1 − 1 = 0
したがって、 0.875 ⇒ 0.111
よって、 答えは 5.875 ⇒ 101.111

8k = 47
よって、 23 k = 25 + 23 + 22 + 2 + 1
よって、 k = 22 + 1 + 2−1 + 2−2 + 2−3
よって、 答えは 5.875 ⇒ 101.111
数理論 へ戻る