該程序爲什麼顯示以下輸出?爲什麼std :: bitset <8>變量無法處理11111111?
#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';
}
這是輸出:
01000000
11000111
b1 & b2: 01000000
b1 | b2: 11000111
b1^b2: 10000111
首先,我想有一些錯誤的頭文件(我是用MinGW的),所以我 使用MSVCC檢查。但它也顯示了同樣的事情。請幫忙。
使用0xff將修復它(或0b11111111是你的編譯器支持它) – 2013-04-08 10:26:05
它可能是有點整潔,如果它做了二進制初始化小數如此 – Inverse 2013-04-11 21:45:43