このコードで何が起こっているのかわかりません:
if ((_value & item.Value) == item.Value)
{
item.IsSet = true;
}
私が見ているこの特定の例では、次のように見えます。
_value
が4103であるitem.Value
が0の場合、それはtrueです。
_value
が4103であるが1の場合item.Value
、それは本当です。
_value
が4103であるが2の場合item.Value
、それは本当です。
_value
が4103であるが4の場合item.Value
、それは本当です。
_value
が4103であるitem.Value
が8の場合、それは正しくありません。
_value
が4103であるitem.Value
が16である場合、それは正しくありません。
_value
が4103であるitem.Value
が256である場合、それは正しくありません。
_value
が4103であるitem.Value
が512である場合、それは正しくありません。
_value
が4103であるitem.Value
が1024である場合、それは正しくありません。
_value
が4103であるitem.Value
が2048である場合、それは正しくありません。
_value
が4103であるitem.Value
が4096の場合、それはtrueです。
別の例では、次のように表示されます。
_value
が51であるitem.Value
が0の場合、それは真です。
_value
が51であるが1の場合item.Value
、それは本当です。
_value
が51で2の場合item.Value
、それは本当です。
_value
が51で4の場合item.Value
、それは正しくありません。
_value
が51で8の場合item.Value
、それは正しくありません。
_value
が51item.Value
で16の場合、それは本当です。
_value
が51item.Value
で32の場合、それは本当です。
誰かが私にそれを説明してもらえますか?