65,211
社区成员
发帖
与我相关
我的任务
分享
bitset<32> s(0xffff);
首先,要搞清楚的问题是bitset是个模板类结构,其类bitset的声明格式是:
template<size_t _Bits> class bitset;
其中的_Bits就是楼主代码定义中的32啦,表示构造的s类对象有32位数据,因此,就算你的s(0xf)只有一个f,对s来说还是32位,这在一开始定义就固定了!
其次,0xffff为16位全1,0xffffffff为32位全1,16位全1那剩下的16位自然是全0啦
#include <iostream>
#include <bitset>
using namespace std;
int main()
{
bitset<32> s(0xffff); //这里ffff为16位,把低16位初始化为1,高16位为0
cout<<s<<endl;
return 0;
}