Warum zeigt dieses Programm die folgende Ausgabe?Warum kann die Variable std :: bitset <8> 11111111 nicht verarbeiten?
#include <bitset>
...
{
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
std::cout << "b1 & b2: " << (b1 & b2) << '\n';
std::cout << "b1 | b2: " << (b1 | b2) << '\n';
std::cout << "b1^b2: " << (b1^b2) << '\n';
}
Dies ist der OUTPUT:
01000000
11000111
b1 & b2: 01000000
b1 | b2: 11000111
b1^b2: 10000111
Zuerst dachte ich, es ist etwas falsch mit der Header-Datei ist (ich war mit MinGW), damit ich geprüft MSVCC verwenden. Aber es zeigte auch das Gleiche. Bitte helfen Sie.
mit 0xff wird es beheben (oder 0b11111111 ist Ihr Compiler unterstützt es) –
Es könnte nett sein, wenn es binäre Initialisierung in Dezimal wie – Inverse