#include <iostream>
#include <bitset>
using namespace std;
int main()
{
bool a = 0x03;
bitset<8> x(a);
cout<<x<<endl;
a = a>>1;
bitset<8> y(a);
cout<<y<<endl;
}
结果是:
00000001
00000000
结果不是:
00000011
00000001
如果我将 from 的类型更改为a
to bool
,char
结果将是第二个。这意味着我不能在 a 中存储超过 0x01 bool
,所有大于 0x01 的值都被视为 0x01。
所有编译器都有这种行为吗?