使用Bitwise Or运算符,您可以将整数(例如2的幂的整数)相互组合,然后检查返回的int是否包含指定的值。但有没有一种正确的方法从返回的整数中删除值而不组合新的?
目前我从合并的整数中减去我想要删除的值,但是这样可以正常工作还是会导致问题?或者还有更多"适当的"这样做的方式?
这是我的代码:
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;
}
答案 0 :(得分:3)
private int RemoveInteger(int a, int b)
{
return a & ~b;
}