c ++中的可变大小数据类型(int)

时间:2010-03-29 06:07:08

标签: c++ types

我想使用数据类型来表示3bits或12bits这样的大小..有谁能告诉我如何在c ++中实现它

并且是否有这样的代码,这可以帮助我定义位大小

int i:3;

提前感谢..

2 个答案:

答案 0 :(得分:3)

你可以使用这样的结构

struct Date {
   unsigned short nWeekDay  : 3;    // 0..7   (3 bits)
   unsigned short nMonthDay : 5;    // 0..31  (6 bits)
   unsigned short nMonth    : 4;    // 0..12  (5 bits)
   unsigned short nYear     : 7;    // 0..100 (8 bits)
};

答案 1 :(得分:1)

您可以使用vector<bool>专精化课程

std::vector<bool> bits(3);

或者,提升dynamic_bitset

boost::dynamic_bitset<> bits(3);

http://www.boost.org/doc/libs/1_42_0/libs/dynamic_bitset/dynamic_bitset.html