ホームへ
コンピュータサイエンス1のトップページへ

コンピュータサイエンス1練習問題解答

問題

1.101を10進数に変換すること(2010年度ITパスポート春季試験問題)

解答

まず、2進数の小数を整数部分と小数部分に分けます。そうすると、「1」と「0.101」に分かれます。

整数部分は、整数を10進数に変換する方法を使います。
(1)2 = (1×20)10 = (1)10

小数部分は、各桁に1/2nをかける方法で10進数に変換します。
(0.101)2 = (0.1×1/21+0.00×1/22+0.001×1/23)10
= (1/21 + 0 + 1/23)10
= (1/2 + 0 + 1/8)10
= (0.625)10

最後に、小数部分と整数部分を合わせます。

答え: 1.625

問題

0.1, 0.2, 0.4, 0.5のうち、2進数に変換した時に有限小数で表現できる10進数はどれかを答えること(2012年度ITパスポート秋季試験問題)

解答

0.1を2進数に変換

  1. 2進数に変換した時の小数点第1位の計算: 0.1×2 = 0.2
  2. 2進数に変換した時の小数点第2位の計算: 0.2×2 = 0.4
  3. 2進数に変換した時の小数点第3位の計算: 0.4×2 = 0.8
  4. 2進数に変換した時の小数点第4位の計算: 0.8×2 = 1.6
  5. 2進数に変換した時の小数点第5位の計算: 0.6×2 = 1.2

5. の計算で、小数点第6位の計算に使う数が0.2になりました。そうすると、この後は、2. の手順と同じ手順を繰り返すことになります。従って、0.1は、2進数に変換しようとすると、小数部分の計算が何度やっても終わらず、同じ計算の繰り返しになります。

小数部分の計算が終わらないということは、0.1は2進数に変換すると無限小数になる、ということで、有限小数ではないので、0.1はこの問題の答えではありません。

0.2を2進数に変換

0.1を2進数に変換する手順の2. で、0.2を使って計算をしています。0.2を使う手順では、小数部分の計算が終わらないことが、0.1を2進数に変換する計算の時にわかっています。従って、0.2は2進数に変換すると無限小数になる、ということで、有限小数ではないので、0.2はこの問題の答えではありません。

0.4を2進数に変換

0.1を2進数に変換する手順の3. で、0.4を使って計算をしています。0.4を使う手順では、小数部分の計算が終わらないことが、0.1を2進数に変換する計算の時にわかっています。従って、0.4は2進数に変換すると無限小数になる、ということで、有限小数ではないので、0.4はこの問題の答えではありません。

0.5を2進数に変換

  1. 2進数に変換した時の小数点第1位の計算: 0.5×2 = 1.0

0.5を2進数に変換すると、1. の手順で、小数点第2位の計算に使う数が0.0になりました。そうすると、かけ算では、0に何をかけても0になります。つまり、この後の小数点第3位以降の計算結果も、すべて0になります。ということは、小数部分の計算がここで終わりということになります。

小数部分の計算が終わりということは、0.5は2進数に変換すると有限小数になる、ということなので、この問題の答えは0.5になります。

答え: 0.5

問題

0.0000055を浮動小数点方式で表現
※仮数部は小数点第2位の小数とすること

解答

答え: 0.55×10-5

問題

0.000000001234を浮動小数点方式で表現
※仮数部は小数点第2位の小数とすること

解答

答え: 12.34×10-10

問題

456000000000000を浮動小数点方式で表現
※仮数部は小数点第2位の小数とすること

解答

答え: 4.56 × 1014

問題

(10÷7)×10000を計算
※小数点第2位までが有効桁数
※桁落ちを考えて計算すること

解答

「(10÷7)×10000」の場合、「÷」と「×」の強さは同じなのですが、「10÷7」にカッコがついているので、「10÷7」を最初にして、その結果に「10000」をかけます。

「10÷7」の結果は、「1.428571428571...」と、小数部が無限に続きます。今回は、小数点第2位までが有効桁数なので、小数点第2位で桁落ちし、「10÷7」の結果は、「1.42」となります。

「10÷7」の結果である「1.42」に「10000」をかけると、結果は「14200」となります。

答え: 14200

問題

10÷7×10000を計算
※小数点第2位までが有効桁数
※桁落ちの影響がなるべく少ないように計算すること

解答

「10÷7×10000」の場合、「÷」と「×」の強さは同じなので、通常は、「10÷7」の結果に「10000」をかけることになります。

ですが今回は、桁落ちの影響をなるべく少なくするように計算します。そのためには、「10÷7」を先にすると、桁落ちの影響が大きくなってしまうので、「10×10000」の計算を先にして、その結果を「7」で割ります。「÷」と「×」の強さは同じなので、このように計算の順番を変えても、結果は同じになります。

そうすると、「10×10000」の結果である「100000」を「7」で割ることになるので、結果は「14285.71428571428571...」と、小数部が無限に続きます。今回は、小数点第2位までが有効桁数なので、小数点第2位で桁落ちし、「100000÷7」の結果は、「14285.71」となります。

答え: 14285.71


Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2016, All rights reserved.