分数から小数(2進)へ
分数と小数
分数は小数の代役(かわり)が出来るだろうか。分数と小数は本来異なったものでしょう。
は 3分の1であって、0.333333… などでは意味がサッパリ分からなくなってしまうではありませんか。また、無限に 3 が続く(…で表している)厄介やっかいものにわざわざする必要もない。実はこれには「級数(きゅうすう)」という難しい話もついてくる。
前ページの「零の発見」で吉田先生は、分数は遠くエジプト、ギリシャが栄えた時代から知られていたものであり、 小数はインド記数法(今の位取り記数法)が定着しつつあった15世紀頃から出てくるのであると歴史的な事実を述べている。つまり全く違ったものなのです。
2進数の小数の中身の確認
小数の例はここに出しています。さて、
上のような数式表現は、小学生には無理があるかも知れません。指数の型にした場合は、さらに
2m・2n = 2m+n
(2m)n = 2mn
など指数法則等にも触れないと意味が 分かりにくく面白くありません。だけども深入りは必要ありません。
分母を見て、次のような分数の形だと小数に直すのはやさしい。
分母が 2□ (2の累乗(るいじょう)) の形
21 , 22 , 23 , 24 , 25 , 26 , 27, … つまり2, 4, 8, 16, 32, 64, 128, … の分数の場合。
例 の分母はちょうどこの 32 である。
これは幾つかの分数の和(たし算)に持っていけば、2進小数の中身にまるまる一致させてしまうことが出来てしまう。なので
(10) = 0.01101(2) ですネ。
分数を2進小数になおす操作を理解するために
仮に2進小数に直ったと考えてみましょう。その小数部分Bは
B = 0. b1 b2 b3 b4 ‥‥になったとします。 B の最上位ビット b1は、Bの2倍 2×Bの整数部分にはみ出します。残りの b2 b3 b4 b5‥‥は1ビットだけ左シフトします(左論理シフト)。
これを繰り返すと 次々に b2 b3 b4 b5‥
が整数部分にはみ出してくれるということになります。
10進分数を2進小数になおす
全ての10進分数にあてはまります
例1 を 2進小数になおします。例2 を2進小数に直します。
「捨てる」とは「とり出す」と言った方が分かりやすいかも知れません。また整数部分の0は捨てても捨てなくても、 元の数に影響しないということから「捨てる」と書かないのです。
さて上の例は、分数をダイナミックに、2進小数に変えてみました。2倍することは、左シフトを1回行うことだから、 次々にやっていくと、最上位(左端)から 1ビットずつ取り出せるということです。 もちろん 10進小数を2進小数に変えるときにもOKというものです。
ホント 情報処理試験の問題です
問題1 10 進数の分数 を 16 進数の小数で表したものは次のどれか。(平成20年出題)ア 0.01 イ 0.02 ウ 0.05 エ 0.08
答えは 【エ】です。
問題2 16 進小数 0.C を 10 進小数に変換したものはどれか。(平成19年出題)
ア 0.12 イ 0.55 ウ 0.75 エ 0.84
答えは 【ウ】です。
他の問題をやってみましょう。
10進分数を 2進小数に換えてください。
問1 | 問2 |
前ページ問題 の答え
(1)上図より 1705 (8) は 3 C 5 (16)
2進表記した後は何ビット毎区切るかで明らか。
つまり
(2) 16進の 1AF は 4ビットずつ区切って、
1/ 1 0 1 0 / 1 1 1 1
8進ではこれを3ビットずつ区切りなおして、
/1 1 0 /1 0 1/ 1 1 1⇒ 6 5 7 (8)
(3) 200= 2×34+1×33+1×32+2 2進表記した後は何ビット毎区切るかで明らか。
つまり
(2) 16進の 1AF は 4ビットずつ区切って、
1/ 1 0 1 0 / 1 1 1 1
8進ではこれを3ビットずつ区切りなおして、
/1 1 0 /1 0 1/ 1 1 1⇒ 6 5 7 (8)
のように基数3だから、重さ81,27、9、3を用いて分けて行く。答えは 21102(3)
(4) 3進数の3倍は1けた分の左シフトと同じ。1201⇒12010
4倍は自分(1倍)+3倍= 1201+12010。3進数の足し算で 20211を得る。
(5) 3進数で 1の位が 0となる数なので,3の倍数です。したがって、アまたはエとなります。
次に、5進数で 1の位が 2となる 2けたの数は5で割ると余りが2であり、エは2ケタ内におさまらない。アが正解になります。
(6)7進数で計算したものです。
少し調べてみましょう。
n進数とすると、
202 = 2n2+2
54 = 5n+4
115 = n2+n+5 ですから
202 - 54 = 115 は、次のようになります。
2n2 + 2 - ( 5n+4 ) = n2 +n+ 5
これは2次方程式といいます。中学高学年からですが、無理して見てみよう。
整理して n2 - 6n - 7 = 0
因数分解して (n +1)(n -7) = 0
nは 6以上ですから n = 7 となります。
方程式を知らない小学生だったら、手っ取り早くいうと、
「シラミツブシ」手法で、
6進数だったら‥
7進数だったら‥
8進数だったら‥
9進数だったら‥
A進数だったら‥
B進数だったら‥
と確かめていく覚悟をすれば、答えが出てくるでしょう。相当に投げやり(笑)
(6)別の考え方
引き算が苦手なので、足し算でみると 115+ 54= 202 となります。
第1位だけを取り出して 5+ 4= [1] 2 となる筈です。([1]は送られた1 以下同様)
これが成り立つのは 7進法です。
次の位は 1+ 5+ [1]= [1] 0 でピッタシで
最上位も 1+ [1]= 2 ピッタシです。
(7)
割算が苦手なので、掛算でいきましょう。そうすると計算式は
131×5=1015 となっています。虫食いの積み木で表すと次図です。
何進数でも 1×5=5 ですから。
次に 3×5= □□ のところですが、
右側が1で、これがN進法だとすると、Nで割った余りが跳び出したものです。
10進で3×5=15 、7進の計算だと 2×7+1=21
□□=21 でピッタシになります。