2012-05-07 7 views
4

私は浮動小数点形式(IEEE)について学んでいます。 単精度浮動小数点フォーマットでは、仮数部が24ビットであることから、6桁1/2の精度(本の "機械を理解する"の冊子)と7.22 decimal digits of precisionがあります。ビット数に基づいて精度の小数点を計算する方法は?

精度の10進数がどのように計算されるのか分かりません。 誰かが私を教えてくれますか?

+0

参照は[意義6または7.225の損失なしバイナリとバック10進数に変換することができます最も重要な桁の精度ですか?] (http://stackoverflow.com/q/30688422/183120)のトレーニングとその解答の説明を参照してください。 – legends2k

答えて

5

24ビットの場合、1ビットが符号として予約されていると仮定すると、表現できる最大の10進数は2^23-1 = 8388607です。つまり、6桁と時には7桁を得ることができます。これはしばしば「6 1/2桁」として表されます。 24ビットが符号なしの数値を表す場合、格納できる最大値は2^24-1 = 16,777,215、または7と小数です。

誰かが7.22小数点のような明示的な小数点以下の桁数を引用すると、最大値のログ(ベース10)を取ることになります。だからlog(16777115)= 7.22。一般的に

、あなたはビットの与えられた数から得られます小数点以下の桁数は次のとおりです。

bはビット、およびdの数は、小数点以下の桁数である
d=log[base 10](2^b) 

。その後:

d=b * log(2) 
d~=b * .3010 

だから、24ビットは24 * 0.3010を与える= 7.224

+0

Jayさん、ありがとう、とても助かりました。 – Yogi

+0

@jay、これはログ(16777115)ではなくログ(16777215)ですか? –

+0

@ShmilTheCatはい。打ち間違え。 – Jay

関連する問題