2011-02-10 5 views
12

私は16ビット固定小数点プロセッサを持っており、固定小数点処理をしたいのです。私は、符号なし16ビット整数に使用する正しいデータ型を探しています。固定小数点処理:uint16_tとuint_fast16_tの違いは何ですか?

私の質問はuint16_tuint_fast16_tの違いは何ですか? (これらはstdint.hに含まれています)uint_fast16_tはより速いので、より良いですか?

ありがとうございます!

+1

http://en.wikipedia.org/wiki/Stdint.h#Integer_types – kennytm

答えて

12

uint16_tは、符号なし16ビット整数です。 uint_fast16_tは、少なくとも16ビットの最速の利用可能な符号なし整数です。

+6

"最速"を定義できると答えがより役立つでしょう。 –

+3

気にしないでください: "標準では、幅がNより大きくなければならないという点を除いて、これらの型について何も規定していません。また、"高速 "整数型の意味を決定するために実装者に任せます。 –

+0

面白いことに、このデータ型にはサイズが指定されていないと奇妙なことがあります。それはユーザーの責任です。o_oこのデータ型にsizeof()を実行すると、エラーが発生しますか?いずれにせよ、私はuint_fast16_tが私に当てはまるとは思わない。固定小数点演算のデータ型としてuint16_tに固執します。 :)ありがとう... –

6

uint16_tは、uint_fast16_tおよびuint_least16_tよりも制限的です。後の2つは16ビットよりも広いだけでなく、パディングビット(パリティビットなどの値を考慮しないビット)を持つこともできます。

この違いは、署名されたタイプでさらに顕著です。ここでは正確な幅のタイプは負の値を表すために2の補数を使用する必要があります。

関連する問題