• ベストアンサー

階乗の桁数

200!の桁数を求めよ。という問題で、 10進法で何桁か?は375桁とわかったのですが、 2進法、4進法、8進法、16進法で何桁なのかわかりません。 2進数の桁数の計算方法は Nlog10=xlog2 (底は10) で、求められると思うのですが、 約1245.723と出てきてしまい、 1245桁なのか1246桁なのかわかりません。 こういう場合は四捨五入するのですか?切捨てにするのですか? 教えてください。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • info22
  • ベストアンサー率55% (2225/4034)
回答No.2

>10進法で何桁か?は375桁とわかったのですが a=200!=n*10^374,1≦n≒7.9<10 log_(10)a=374+d,0≦d≒0.90<1 >約1245.723と出てきてしまい、 >1245桁なのか1246桁なのかわかりません。 「切捨てて1を加える」ので1246桁です。 log_(2)a={log_(10)a}/log_(10)2=(374+d)/0.3010=1245+d1,0≦d1≒0.38<1 2進法で(1245+1)=1246桁 同様にして log_(4)a=622+d2,0≦d2≒0.69<1 4進法で(622+1)=623桁 log_(8)a=415+d3,0≦d3≒0.13<1 8進法で(415+1)=416桁 log_(16)a=311+d4,0≦d4≒0.35<1 16進法で(311+1)=312桁

ba_i_o
質問者

お礼

小数点以下をどうするのかで迷っていました。 解説ありがとうございます。

その他の回答 (2)

  • aquaburry
  • ベストアンサー率57% (20/35)
回答No.3

10進法で 3桁・・100以上1000未満のXは、 10^2<=X<10^3 ですよね。 例えば、500という3桁の数字は10の何乗なのでしょうか。 単に四捨五入とか切り捨てかを暗記するのではなく、意味を考えましょう。 10進法も2進法も16進法もみな同じ考え方ではないでしょうか。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

10進数のときと同じように処理してください.

関連するQ&A

専門家に質問してみよう