). a = 8, b = 2의 두 정수가 있다고 가정합니다. C++에서는 | a | b가 참입니다. 그 동작을 사용하여 플래그 컬렉션을 작업했습니다. 예를 들어, 플래그는 1, 2, 4, 8 등이 될 수 있으며, 이들의 콜렉션은 고유합니다. 나는 C#에서 그렇게하는 법을 찾을 수 없다. & 연산자는 C++에서와 같이 작동하지 않습니다. C#에서 연산자에 대한 설명서를 읽었지만 여전히 이해가 가지 않습니다.비트 단위 Or : C# 대 C++
는 편집 :
불행하게도, 어디 선가 엉망 일을 보인다. 이 코드를 예로 들면 다음과 같습니다.
byte flagCollection = 8;
byte flag = 3;
if ((flag | flagCollection) != 0) MessageBox.Show("y"); else MessageBox.Show("n");
플래그를 넣은 값이 "y"이면이 값을 반환합니다. 3 | 8은 11이 될 것입니다. 흠 ... 나는 플래그 컬렉션을 가지고 있습니다 : 1, 2, 4, 8, 16 그리고 플래그를 결정할 수 있도록 숫자를 줄 때.
Any1은이 용도로 사용됩니까? –
'int'는'bool' 타입이 없기 때문에 C++에서'bool'로 변환되지 않습니다.'int'는'bool'으로 사용됩니다. – Noldorin
@ Noldorin : 아닙니다 - C (C99 이전)에는 bool 유형이 없었으며 한 번에 (표준화가 잘되기 전에) C++도 마찬가지 였지만 C는 bool (기술적으로는 _Bool이라고 함)을 가지고있었습니다. C++은 그보다 더 오래 걸렸습니다. –