私は浮動小数点形式(IEEE)について学んでいます。 単精度浮動小数点フォーマットでは、仮数部が24ビットであることから、6桁1/2の精度(本の "機械を理解する"の冊子)と7.22 decimal digits of precisionがあります。ビット数に基づいて精度の小数点を計算する方法は?
精度の10進数がどのように計算されるのか分かりません。 誰かが私を教えてくれますか?
私は浮動小数点形式(IEEE)について学んでいます。 単精度浮動小数点フォーマットでは、仮数部が24ビットであることから、6桁1/2の精度(本の "機械を理解する"の冊子)と7.22 decimal digits of precisionがあります。ビット数に基づいて精度の小数点を計算する方法は?
精度の10進数がどのように計算されるのか分かりません。 誰かが私を教えてくれますか?
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
参照は[意義6または7.225の損失なしバイナリとバック10進数に変換することができます最も重要な桁の精度ですか?] (http://stackoverflow.com/q/30688422/183120)のトレーニングとその解答の説明を参照してください。 – legends2k