Используя побитовый оператор Or, вы можете комбинировать целые числа, например целые числа, являющиеся степенью двойки, друг с другом, а затем проверять, содержит ли возвращаемое целое заданное значение. Но есть ли правильный способ удалить значения из возвращаемого целого числа без объединения нового?
В настоящее время я вычитаю значение, которое хочу удалить из объединенного целого числа, но это работает нормально или может вызвать проблемы? Или есть более "правильный" способ сделать это?
Вот мой код:
private void button1_Click(object sender, EventArgs e)
{
int combinedints = CombineIntegers(CombineIntegers(2, 8), 32); //Combine three integers.
MessageBox.Show(combinedints.ToString()); //Shows 42.
MessageBox.Show(RemoveInteger(combinedints, 8).ToString()); //Removes 8 - shows 34.
}
private int CombineIntegers(int a, int b)
{
return a | b;
}
private int RemoveInteger(int a, int b)
{
return a -= b;
}
private bool CheckInteger(int a, int b)
{
return (a & b) == b;
}
RemoveInteger
? Еслиunset
, то это очень неправильно. - person leppie   schedule 11.07.2015RemoveInteger
, чтобы удалить одно из этих значений, если захочу. (например, 8). - person Visual Vincent   schedule 11.07.2015combine
, подразумевается ли побитовая операция, как подразумевает ваш принятый ответ? ;п - person leppie   schedule 11.07.2015