怎么定义40bit或80位的数据类型,可不可以用"<<"来移位

如何定义40bit或80位的数据类型,可不可以用"<<"来移位?
假设有一个序号从1号到40号的队伍领取避孕产品,我想定义一个有40位的数据类型,从前向后每一位依次对应1号到40号人的性别,男的为1,女的为0,当,当第一位领到产品后,我就把这个变量向前移一位,请问一下各位,可以吗,如果可以的话,怎么定义?谢谢先!

------解决方案--------------------
超过64位,可以用bitset类来实现。

给楼主一个简单例子:

#include <iostream>
#include <bitset>

using namespace std;

int main()
{
bitset <80> s(10001);

cout < <s < <endl;//原位串
s=s < <1; //左移一位
cout < <s < <endl;//移位后的位串

return 1;
}

关于bitset类,更详细的介绍在下面的链接:
http://book.****.net/bookfiles/17/1001760.shtml