我只是对bitset <32>元素的确切大小感到困惑。
正如std::bitset::size
的{{3}}所说:
返回位集中的位数。
正如sizeof
的{{3}}所说
返回类型的对象表示形式的大小(以字节为单位)。
所以我尝试在以下程序中使用这两个功能
#include <iostream>
using namespace std;
int main(){
unsigned char a = 0; // a = 5(00000101)
std::bitset<32> x(a);
cout << sizeof(x) << endl;
cout << x.size() << endl;
return 0;
}
输出为
8
32
sizeof(x)
为什么不返回4?因为32位应等于4个字节,而不是8个字节?