为什么这个程序显示以下输出?
#include <bitset>
#include <cstdio>
#include <iostream>
int main()
{
std::bitset<8> b1(01100100); std::cout<<b1<<std::endl;
std::bitset<8> b2(11111111); std::cout<<b2<<std::endl; //see, this variable
//has been assigned
//the value 11111111
//whereas, during
//execution, it takes
//the value 11000111.
//Same is the case with b1
std::cout << "b1 & b2: " << (b1 & b2) << '\n';
std::cout << "b1 | b2: " << (b1 | b2) << '\n';
std::cout << "b1 ^ b2: " << (b1 ^ b2) << '\n';
getchar();
return 0;
}
这是输出:
01000000
11000111
b1 & b2: 01000000
b1 | b2: 11000111
b1 ^ b2: 10000111
首先,我认为头文件有问题(我使用的是 MinGW),所以我使用 MSVCC 进行了检查。但它也表明了同样的事情。请帮忙!