Tại sao chương trình này hiển thị kết quả sau?Tại sao lệnh std :: bitset <8> không thể xử lý 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';
}
Đây là OUTPUT:
01000000
11000111
b1 & b2: 01000000
b1 | b2: 11000111
b1^b2: 10000111
Trước tiên, tôi nghĩ rằng có cái gì đó sai với tập tin tiêu đề (Tôi đã sử dụng MinGW) vì vậy tôi kiểm tra sử dụng MSVCC. Nhưng nó cũng cho thấy điều tương tự. Hãy giúp tôi.
sử dụng 0xff sẽ sửa chữa nó (hoặc 0b11111111 là trình biên dịch của bạn hỗ trợ nó) –
Nó có thể là kinda gọn gàng nếu nó đã khởi tạo nhị phân trong thập phân như vậy – Inverse