2016-05-27 17 views
1

10ビットのデータ型を作成できますか? uint16_tuint32_tなどを使用できますが、uint10_tまたはuint12_tを使用する場合はどうすればよいですか?これは可能ですか?C/C++で10ビットのデータ型を作成

+0

C++の美しさは、ちょっとした肘グリースであなたの心が望むデータ型を定義できるということです。 –

+0

ええと、 'std :: bitset <10>'はどうですか? –

+0

どのように動作させたいですか? uint_16とどう違うのですか? –

答えて

4

サイズがバイトの倍数ではないタイプを持つことはできません。したがって、10ビットのデータ型を作成することは非スターターです。あなたがが10ビットを含むエンティティを表す型を作成することができ

std::bitset<10>を使用して、16ビットタイプで10ビットのビットフィールドを使用しているかどうか:両方の場合において

struct uint10_t { 
    uint16_t value : 10; 
    uint16_t _  : 6; 
}; 

を、型自体は、意志10ビットより大きい。たとえば、10バイトに収まるように8つの配列を作成することはできません。

+1

IIRCでは、未使用のビットフィールドメンバに名前を付ける必要はありません。 (実際には、それを含めなくても) – owacoder

+0

バイトに10ビットがある場合、これは問題ありません:-) – Olaf

関連する問題