「値」の範囲は0〜15です(可能な値)。これらの4つの「if」条件はいつ満たされますか?(int)value = 2の場合、これは0010を意味しますか?
if ((int)value & 0x1)
{
//statement here
}
if ((int)value & 0x2)
{
//statement here
}
if ((int)value & 0x4)
{
//statement here
}
if ((int)value & 0x8)
{
//statement here
}
Enum.HasFlagメソッドを使用してビットをテストします。参照:Enum.HasFlag。

valueif(value & 0x4)value