[msg#wsiki]

 

n進数で何桁になるか

 

ある自然数\(a\)をn進数(n進法)で表したときの桁数を求める公式です。

 

\(aのn進法での桁数=\displaystyle [\log_{n}a]+1\)

 

[ ] の記号は、ガウス記号と呼ばれる記号です。小数点以下を切り捨てする関数です。

1を足すことを忘れないようにしましょう。

 

 

例1: \(2^{50}\)は10進法で何桁か?

 

例えば、\(2^{50}\)が10進法で何桁になるのか調べるためには、

\(\displaystyle [\log_{10}2^{50}]+1\)

を計算すればよいのです。

\(\displaystyle \log_{10} 2 = 0.30103 \)

として(近似)計算してみると、

\(\displaystyle [\log_{10}2^{50}]+1\)

\(\displaystyle =[50\log_{10}2]+1\)

\(\displaystyle =[15.0515]+1\)

\(\displaystyle =16\)

16桁であることが計算できました。

 

実際に、\(2^{50}\)を計算すると、

\(2^{50}=1125899906842624\)

となりますから、16桁であることが確認できます。

 

 

例2: 9999999999は5進法で何桁か?

 

10進法で9が10個ならんでいる数を5進法で表した場合の問題です。

 

公式をつかって、

\(\displaystyle [\log_{5}9999999999]+1\)

を計算します。

計算機で計算すると、

\(\displaystyle [\log_{5}9999999999]+1=15\)

となりますから15桁です。

 

計算機がなくても、なんとか計算できますよ。

 

\(9999999999=10^{10}-1\)

ですから、ちょっとずれますが\(10^{10}\)が5進法で何桁かを調べます。

 

公式によって

 

\(\displaystyle [\log_{5}10^{10}]+1\)

\(\displaystyle =[10\log_{5}10]+1\)

\(\displaystyle =[10\frac{\log_{10}{10}}{\log_{10}{5}}]+1\)

\(\displaystyle =[10\frac{1}{\log_{10}{5}}]+1\)

\(\displaystyle =[14.30677]+1=15\)

 

\(10^{10}\)は5進数では、15桁です。

 

ここで、

\(\displaystyle [14.30677]\)に注目してください。

小数点以下がきっちり0になっていませんね。

これは、この15桁の数はちょうど繰り上がってできた15桁でない数であることを表しています。

ちょうど繰り上がった場合の15桁の数の場合、ガウス関数の小数点以下は0となります。

 

ですから、

\(9999999999\)と\(10^{10}\)は5進法で同じ桁数であることがわかります。

 

したがて、答え15桁であることが計算できました。

 

 

なお、\(\displaystyle \log_{10}5=\log_{10}{\frac{10}{2}}=1-\log_{10}2\)

を使って

\(\displaystyle \log_{10} 5 = 0.69897 \)

を計算してます。

 

補足

模範解答のように解答つくりましたが、実は5で割るのはそう難しくないので、この問題の場合は、普通に5で割り続けて5進数に書き直したほうが簡単です。そのほうが直接的で確実に計算できます。

 

 

関連

桁数がからんだ入試問題(浜松医大)

 

[ad#foot]