論理演算子を使用して、ビットが設定されているかどうか、またはビットシフトが唯一の方法であるかどうかを判断するにはどうすればよいですか?
ビットシフトを使用するこの質問を見つけましたが、自分の価値を引き出すことができると思いAND
ます。
状況によっては、Active Directory から値を読み取って、それがスキーマ ベース オブジェクトかどうかを判断しようとしています。私の問題は構文の問題だと思いますが、修正方法がわかりません。
foreach (DirectoryEntry schemaObjectToTest in objSchema.Children)
{
var resFlag = schemaObjectToTest.Properties["systemFlags"].Value;
//if bit 10 is set then can't be made confidential.
if (resFlag != null)
{
byte original = Convert.ToByte( resFlag );
byte isFlag_Schema_Base_Object = Convert.ToByte( 2);
var result = original & isFlag_Schema_Base_Object;
if ((result) > 0)
{
//A non zero result indicates that the bit was found
}
}
}
デバッガーを見ると:
resFlag
はobject{int}
で、値は0x00000010
です。
isFlag_Schema_Base_Object
、 は0x02