質問
それは簡単ですが、グーグルを通してそれを見つけることができませんでした。浮動小数点の表現がより大きな範囲の数をサポートし、操作は純粋な整数よりも遅くなります。また、仮数と指数が浮動小数点を表すためにどのように使用されるかを知っています。しかし、私の質問は、32ビットシステムでは、出力が32ビットまたは32ビットより長いです。(S=大別、B= Base、E=指数)
解決
浮動小数点数の指数と指数を表すために使用される正確なビット数は、CPUからCPUによって異なりますので、問題は確かに依存しています。
非常に支配的な1つの規格があります:、そして< href="https://stackoverflowflowflowflowflowflowflowflowflowflowflowflowflow.com/questions/2234468/do-any-real-world-cpus-not-us-ieee-754">これに関連しているので、質問すべての主要なCPU今日はIA32を含むそれを実装しています。
ウィキペディアによると、IEEE浮動小数点では、いかなる実装でも、少なくとも1つの方法があります。
- binary32:24ビットの仮数(1桁のビットを含む)と8ビット指数
- BINARY64:53ビットの仮数(1行目のビットを含む)と11ビット指数
32ビットで ia 32ファミリ(どちらのみです) 32ビットを使用するいくつかのアーキテクチャの1つ)、次に浮動小数点レジスタには最大80ビットを含めることができます。 、Binary32、Binary64と15の指数ビットを持つ非IEC 80ビットフォーマットをサポートできます。 32ビットと64ビット命令を区別するために、ほとんどのアセンブラは、QWORD
またはDWORD
などのサイズ修飾子を使用します。
また、CPU実装の他に、言語はIEEE浮動小数点にコンプライアンスを要求することもできます。たとえば、annex 7は、マクロ__STDC_IEC_599__
がコンパイラによって自動的に定義されている場合、float
がBinary32とdouble
Binary64になることを保証します。 long double
はIECに固定されていないため、IA32アーチで80ビットを使用できます。