このコードで何が起こっているのかわかりません:
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の場合、それは本当です。
誰かが私にそれを説明してもらえますか?