#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
の型をa
からbool
に変更するchar
と、結果は 2 番目になります。に 0x01 を超える値を格納することはできません。0x01 をbool
超える値はすべて 0x01 として扱われます。
すべてのコンパイラに動作がありますか?