). Giả sử bạn có hai số nguyên, a = 8, b = 2. Trong C++ a | b là sự thật. Tôi đã sử dụng hành vi đó để làm việc với các bộ sưu tập cờ. Ví dụ: các cờ sẽ là 1, 2, 4, 8, v.v. và bất kỳ bộ sưu tập nào của chúng sẽ là duy nhất. Tôi không thể tìm thấy làm thế nào để làm điều đó trong C#, như | và các toán tử & không hoạt động giống như trong C++. Tôi đọc tài liệu về các toán tử trong C# nhưng tôi vẫn không hiểu.Bitwise Hoặc: C# so với C++
CHỈNH SỬA:
Thật không may, tôi dường như làm mọi thứ lộn xộn ở đâu đó. Lấy mã này ví dụ:
byte flagCollection = 8;
byte flag = 3;
if ((flag | flagCollection) != 0) MessageBox.Show("y"); else MessageBox.Show("n");
Trả về "y" cho bất kỳ giá trị nào tôi đặt trong cờ. Điều này là hiển nhiên, bởi vì 3 | 8 sẽ là 11. Hmmmm ... những gì tôi muốn làm là có một bộ sưu tập cờ: 1, 2, 4, 8, 16 và khi tôi đưa ra một số, để có thể xác định cờ là gì.
Any1 có ví dụ về cách sử dụng này không? –
'int' không được chuyển đổi' thành 'bool' trong C++, bởi vì, vì không có kiểu' bool' - 'int' được sử dụng như 'bool'. – Noldorin
@Noldorin: Không phải như vậy - C (trước C99) không có kiểu bool, và tại một thời điểm (trước khi chuẩn hóa) C++ cũng không, nhưng C đã có bool (về mặt kỹ thuật nó được đặt tên _Bool) cho khoảng một thập kỷ, và C++ đã có nó lâu hơn. –