【初月無料キャンペーン中】gooドクター

いつもお世話になってます。
情報処理技術者試験の問題で分からない部分があったので質問させて頂きます。

***問題
14桁の16進数を10進数で表した時の桁数
但し、log10(2) = 0.301とする。

***解答
log10(16^14)
= 14 * log10(16)
= 14 * log10(2^4)
= 14 * 4 * log10(2)
= 14 * 4 * 0.301 = 16.856

繰り上げて答えは17桁になります。

質問ですが何故、14桁の16進数の最大値の桁数が16^14と同じになるのかが分かりません。
14桁の16進数の最大値は16^14 - 1になるので、
桁数も16^14 - 1と同じになるのではないのでしょうか。


基本的な事を見逃している気がします。
解答宜しくお願い致します。

A 回答 (2件)

>14桁の16進数の最大値は16^14 - 1になるので、


>桁数も16^14 - 1と同じになるのではないのでしょうか。

まったくおっしゃる通りですが、

実際問題として、16^14と16^14-1の差は、きわめて小さく、
16^14-1の桁数を求めることは難しく、16^14なら、やさしい。

また、
>繰り上げて答えは17桁になります。
というのも、ちょっとザックリしすぎていて、
数学の答案としてなら、例えば、

16<16.856<log(16^14)<16.902(=14*4*0.302)<17
10^16<16^14-1<16^14<10^17 だから、17桁、
ということです。

実際には、ほぼありえないことなので、
ザックリした答案でも間に合いますが、
log(16^x)≒??.00…01のように、きわどい場合には、
おっしゃるように、16^x-1が、10^??より小さくなって
しまわないかの、チェックは必要になります。
    • good
    • 2

例えば


最大値1500の桁数は1500桁じゃなくて、4桁だよね。。。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング