6

C99 では、uint32_t、int16_t などの整数型が記述されており、使用されているビット数を簡単に確認できます。たとえば、組み込みプログラミングで知っておくとよいでしょう。

浮動小数点値の同様のタイプは見つかりませんでした。基準はありますか?そうでない場合、なぜですか?

4

3 に答える 3

1

質問の「理由」の部分に答えるためにuint32_t、たとえば、名前は、型について知る必要があるすべてを示しています。これは、符号なしで正確に 32 ビット幅であり、正確0に から までの範囲を意味し4294967295ます。(C 標準では、uintN_t型にパディング ビットまたはトラップ表現がなく、符号付きintN_t型が 2 の補数を使用する必要があります。)

一方、浮動小数点型のサイズをビット単位で指定しても、ほとんどわかりません。仮定float64_tでは正確に 64 ビットですが、浮動小数点オブジェクトを構成するビットは、符号ビット、指数、および仮数 (仮数) に分割されます。さらに、これらのビットの意味はさまざまです。ほとんどの表現では、指数は 2 の累乗を表しますが、16 の累乗になることもあります。また、非正規数、非正規数、NaN、無限大、負のゼロなど、多数の特殊な表現があります。

浮動小数点表現には、型名で簡単にエンコードできるよりも多くのバリエーションがあります。

IEEE 浮動小数点標準 (より正確には IEC 60559) はこれらすべてを定義していますが、実装が IEC 60559 をサポートしている場合、C 標準はとにかくfloatとの意味を指定しdoubleます (ただし、 の柔軟性がある程度高くなりますlong double)。

于 2012-09-10T03:43:06.843 に答える